<?php
 @Ini_Set ("max_execution_time", "0") ;
 $max_recursif = 2000 ;
 $chaine_pointeur = "->" ;
 $type_champ_auto = "INT(11) AUTO_INCREMENT PRIMARY KEY" ;
 $type_donnees = "TEXT" ;
 $attribut_donnees = "NOT NULL" ;

 //
 // STRUCTURE DU XML sts_emp_RNE_ANNEE.xml NON RECURSIF
 //
 $structures_xml [1][0][0][0] = 13 ; // Nombre de pointeurs
 $structures_xml [1][0][0][1] = $chaine_pointeur ; // Chaine de pointage
 $structures_xml [1][0][0][2] = "STRUCTURE" ; // Entete de nom des tables
 
 // UAJ
 $structures_xml [1][1][0][0] = 15 ; // Nombre d'elements
 $structures_xml [1][1][0][1] = "STS_EDT".$chaine_pointeur."PARAMETRES".$chaine_pointeur."UAJ" ; // Pointeur
 $structures_xml [1][1][0][2] = "UAJ" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [1][1][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [1][1][0][4] = "CODE" ; // Nom de l'attribut a enregistrer
 $structures_xml [1][1][0][5] = "CODE" ; // Nom du champ pour l'attribut

 $structures_xml [1][1][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][1][1][1] = "ACADEMIE".$chaine_pointeur."CODE" ; // element (avec -> pointeur)
 $structures_xml [1][1][1][2] = "ACADEMIE_CODE" ; // Nom du champ destination
 
 $structures_xml [1][1][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][1][2][1] = "ACADEMIE".$chaine_pointeur."LIBELLE" ; // element (avec -> pointeur)
 $structures_xml [1][1][2][2] = "ACADEMIE_LIBELLE" ; // Nom du champ destination
 
 $structures_xml [1][1][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][1][3][1] = "DENOM_PRINC" ; // element (avec -> pointeur)
 $structures_xml [1][1][3][2] = "DENOM_PRINC" ; // Nom du champ destination
 
 $structures_xml [1][1][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][1][4][1] = "DENOM_COMPL" ; // element (avec -> pointeur)
 $structures_xml [1][1][4][2] = "DENOM_COMPL" ; // Nom du champ destination
 
 $structures_xml [1][1][5][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][1][5][1] = "CODE_NATURE" ; // element (avec -> pointeur)
 $structures_xml [1][1][5][2] = "CODE_NATURE" ; // Nom du champ destination
 
 $structures_xml [1][1][6][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][1][6][1] = "CODE_CATEGORIE" ; // element (avec -> pointeur)
 $structures_xml [1][1][6][2] = "CODE_CATEGORIE" ; // Nom du champ destination
 
 $structures_xml [1][1][7][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][1][7][1] = "MENTION_DISTRIBUTION" ; // element (avec -> pointeur)
 $structures_xml [1][1][7][2] = "MENTION_DISTRIBUTION" ; // Nom du champ destination
 
 $structures_xml [1][1][8][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][1][8][1] = "ADRESSE" ; // element (avec -> pointeur)
 $structures_xml [1][1][8][2] = "ADRESSE" ; // Nom du champ destination
 
 $structures_xml [1][1][9][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][1][9][1] = "COMMUNE" ; // element (avec -> pointeur)
 $structures_xml [1][1][9][2] = "COMMUNE" ; // Nom du champ destination
 
 $structures_xml [1][1][10][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][1][10][1] = "CODE_POSTAL" ; // element (avec -> pointeur)
 $structures_xml [1][1][10][2] = "CODE_POSTAL" ; // Nom du champ destination
 
 $structures_xml [1][1][11][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][1][11][1] = "BOITE_POSTALE" ; // element (avec -> pointeur)
 $structures_xml [1][1][11][2] = "BOITE_POSTALE" ; // Nom du champ destination
 
 $structures_xml [1][1][12][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][1][12][1] = "CEDEX" ; // element (avec -> pointeur)
 $structures_xml [1][1][12][2] = "CEDEX" ; // Nom du champ destination
 
 $structures_xml [1][1][13][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][1][13][1] = "TELEPHONE" ; // element (avec -> pointeur)
 $structures_xml [1][1][13][2] = "TELEPHONE" ; // Nom du champ destination
 
 $structures_xml [1][1][14][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][1][14][1] = "STATUT" ; // element (avec -> pointeur)
 $structures_xml [1][1][14][2] = "STATUT" ; // Nom du champ destination
 
 $structures_xml [1][1][15][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][1][15][1] = "ETABLISSEMENT_SENSIBLE" ; // element (avec -> pointeur)
 $structures_xml [1][1][15][2] = "ETABLISSEMENT_SENSIBLE" ; // Nom du champ destination
 
 // ANNEE SCOLAIRE
 $structures_xml [1][2][0][0] = 2 ; // Nombre d'elements
 $structures_xml [1][2][0][1] = "STS_EDT".$chaine_pointeur."PARAMETRES".$chaine_pointeur."ANNEE_SCOLAIRE" ;
 $structures_xml [1][2][0][2] = "ANNEE_SCOLAIRE" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [1][2][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [1][2][0][4] = "ANNEE" ; // Nom de l'attribut a enregistrer
 $structures_xml [1][2][0][5] = "ANNEE" ; // Nom du champ pour l'attribut

 $structures_xml [1][2][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][2][1][1] = "DATE_DEBUT" ; // element (avec -> pointeur)
 $structures_xml [1][2][1][2] = "DATE_DEBUT" ; // Nom du champ destination
 
 $structures_xml [1][2][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][2][2][1] = "DATE_FIN" ; // element (avec -> pointeur)
 $structures_xml [1][2][2][2] = "DATE_FIN" ; // Nom du champ destination
 
 // NOMENCLATURES -> TYPES AHE
 $structures_xml [1][3][0][0] = 2 ; // Nombre d'elements
 $structures_xml [1][3][0][1] = "STS_EDT".$chaine_pointeur."NOMENCLATURES".$chaine_pointeur."TYPES_AHE".$chaine_pointeur."TYPE_AHE" ;
 $structures_xml [1][3][0][2] = "TYPES_AHE" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [1][3][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [1][3][0][4] = "CODE" ; // Nom de l'attribut a enregistrer
 $structures_xml [1][3][0][5] = "CODE" ; // Nom du champ pour l'attribut

 $structures_xml [1][3][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][3][1][1] = "LIBELLE_COURT" ; // element (avec -> pointeur)
 $structures_xml [1][3][1][2] = "LIBELLE_COURT" ; // Nom du champ destination
 
 $structures_xml [1][3][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][3][2][1] = "LIBELLE_LONG" ; // element (avec -> pointeur)
 $structures_xml [1][3][2][2] = "LIBELLE_LONG" ; // Nom du champ destination
 
 // NOMENCLATURES -> CIVILITES
 $structures_xml [1][4][0][0] = 2 ; // Nombre d'elements
 $structures_xml [1][4][0][1] = "STS_EDT".$chaine_pointeur."NOMENCLATURES".$chaine_pointeur."CIVILITES".$chaine_pointeur."CIVILITE" ;
 $structures_xml [1][4][0][2] = "CIVILITES" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [1][4][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [1][4][0][4] = "CODE" ; // Nom de l'attribut a enregistrer
 $structures_xml [1][4][0][5] = "CODE" ; // Nom du champ pour l'attribut

 $structures_xml [1][4][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][4][1][1] = "LIBELLE_COURT" ; // element (avec -> pointeur)
 $structures_xml [1][4][1][2] = "LIBELLE_COURT" ; // Nom du champ destination
 
 $structures_xml [1][4][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][4][2][1] = "LIBELLE_LONG" ; // element (avec -> pointeur)
 $structures_xml [1][4][2][2] = "LIBELLE_LONG" ; // Nom du champ destination
 
 // NOMENCLATURES -> MEFSTATS4
 $structures_xml [1][5][0][0] = 3 ; // Nombre d'elements
 $structures_xml [1][5][0][1] = "STS_EDT".$chaine_pointeur."NOMENCLATURES".$chaine_pointeur."MEFSTATS4".$chaine_pointeur."MEFSTAT4" ;
 $structures_xml [1][5][0][2] = "MEFSTATS4" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [1][5][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [1][5][0][4] = "CODE" ; // Nom de l'attribut a enregistrer
 $structures_xml [1][5][0][5] = "CODE" ; // Nom du champ pour l'attribut

 $structures_xml [1][5][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][5][1][1] = "LIBELLE_COURT" ; // element (avec -> pointeur)
 $structures_xml [1][5][1][2] = "LIBELLE_COURT" ; // Nom du champ destination
 
 $structures_xml [1][5][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][5][2][1] = "LIBELLE_LONG" ; // element (avec -> pointeur)
 $structures_xml [1][5][2][2] = "LIBELLE_LONG" ; // Nom du champ destination
 
 $structures_xml [1][5][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][5][3][1] = "INDEMNITE_PP_AUTORISEE" ; // element (avec -> pointeur)
 $structures_xml [1][5][3][2] = "INDEMNITE_PP_AUTORISEE" ; // Nom du champ destination
 
 // NOMENCLATURES -> TAUX PONDS
 $structures_xml [1][6][0][0] = 1 ; // Nombre d'elements
 $structures_xml [1][6][0][1] = "STS_EDT".$chaine_pointeur."NOMENCLATURES".$chaine_pointeur."TAUX_PONDS".$chaine_pointeur."TAUX_POND" ;
 $structures_xml [1][6][0][2] = "TAUX_PONDS" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [1][6][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [1][6][0][4] = "TAUX" ; // Nom de l'attribut a enregistrer
 $structures_xml [1][6][0][5] = "TAUX" ; // Nom du champ pour l'attribut

 $structures_xml [1][6][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][6][1][1] = "CPGE_BTS" ; // element (avec -> pointeur)
 $structures_xml [1][6][1][2] = "CPGE_BTS" ; // Nom du champ destination
 
 // NOMENCLATURES -> MODS COURS
 $structures_xml [1][7][0][0] = 3 ; // Nombre d'elements
 $structures_xml [1][7][0][1] = "STS_EDT".$chaine_pointeur."NOMENCLATURES".$chaine_pointeur."MODS_COURS".$chaine_pointeur."MOD_COURS" ;
 $structures_xml [1][7][0][2] = "MODS_COURS" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [1][7][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [1][7][0][4] = "CODE" ; // Nom de l'attribut a enregistrer
 $structures_xml [1][7][0][5] = "CODE" ; // Nom du champ pour l'attribut

 $structures_xml [1][7][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][7][1][1] = "LIBELLE_COURT" ; // element (avec -> pointeur)
 $structures_xml [1][7][1][2] = "LIBELLE_COURT" ; // Nom du champ destination
 
 $structures_xml [1][7][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][7][2][1] = "LIBELLE_LONG" ; // element (avec -> pointeur)
 $structures_xml [1][7][2][2] = "LIBELLE_LONG" ; // Nom du champ destination
 
 $structures_xml [1][7][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][7][3][1] = "CO_ENS" ; // element (avec -> pointeur)
 $structures_xml [1][7][3][2] = "CO_ENS" ; // Nom du champ destination
 
 // NOMENCLATURES -> MATIERES
 $structures_xml [1][8][0][0] = 4 ; // Nombre d'elements
 $structures_xml [1][8][0][1] = "STS_EDT".$chaine_pointeur."NOMENCLATURES".$chaine_pointeur."MATIERES".$chaine_pointeur."MATIERE" ;
 $structures_xml [1][8][0][2] = "MATIERES" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [1][8][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [1][8][0][4] = "CODE" ; // Nom de l'attribut a enregistrer
 $structures_xml [1][8][0][5] = "CODE" ; // Nom du champ pour l'attribut
 
 $structures_xml [1][8][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][8][1][1] = "CODE_GESTION" ; // element (avec -> pointeur)
 $structures_xml [1][8][1][2] = "CODE_GESTION" ; // Nom du champ destination

 $structures_xml [1][8][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][8][2][1] = "LIBELLE_COURT" ; // element (avec -> pointeur)
 $structures_xml [1][8][2][2] = "LIBELLE_COURT" ; // Nom du champ destination
 
 $structures_xml [1][8][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][8][3][1] = "LIBELLE_LONG" ; // element (avec -> pointeur)
 $structures_xml [1][8][3][2] = "LIBELLE_LONG" ; // Nom du champ destination
 
 $structures_xml [1][8][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][8][4][1] = "LIBELLE_EDITION" ; // element (avec -> pointeur)
 $structures_xml [1][8][4][2] = "LIBELLE_EDITION" ; // Nom du champ destination
 
 // NOMENCLATURES -> MEFS
 $structures_xml [1][9][0][0] = 6 ; // Nombre d'elements
 $structures_xml [1][9][0][1] = "STS_EDT".$chaine_pointeur."NOMENCLATURES".$chaine_pointeur."MEFS".$chaine_pointeur."MEF" ;
 $structures_xml [1][9][0][2] = "MEFS" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [1][9][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [1][9][0][4] = "CODE" ; // Nom de l'attribut a enregistrer
 $structures_xml [1][9][0][5] = "CODE" ; // Nom du champ pour l'attribut
 
 $structures_xml [1][9][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][9][1][1] = "FORMATION" ; // element (avec -> pointeur)
 $structures_xml [1][9][1][2] = "FORMATION" ; // Nom du champ destination
 
 $structures_xml [1][9][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][9][2][1] = "SPECIALITE" ; // element (avec -> pointeur)
 $structures_xml [1][9][2][2] = "SPECIALITE" ; // Nom du champ destination

 $structures_xml [1][9][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][9][3][1] = "LIBELLE_LONG" ; // element (avec -> pointeur)
 $structures_xml [1][9][3][2] = "LIBELLE_LONG" ; // Nom du champ destination
 
 $structures_xml [1][9][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][9][4][1] = "LIBELLE_EDITION" ; // element (avec -> pointeur)
 $structures_xml [1][9][4][2] = "LIBELLE_EDITION" ; // Nom du champ destination
 
 $structures_xml [1][9][5][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][9][5][1] = "MEFSTAT11" ; // element (avec -> pointeur)
 $structures_xml [1][9][5][2] = "MEFSTAT11" ; // Nom du champ destination
 
 $structures_xml [1][9][6][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][9][6][1] = "MEFSTAT4" ; // element (avec -> pointeur)
 $structures_xml [1][9][6][2] = "MEFSTAT4" ; // Nom du champ destination
 
 // NOMENCLATURES -> PROGRAMMES
 $structures_xml [1][10][0][0] = 3 ; // Nombre d'elements
 $structures_xml [1][10][0][1] = "STS_EDT".$chaine_pointeur."NOMENCLATURES".$chaine_pointeur."PROGRAMMES".$chaine_pointeur."PROGRAMME" ;
 $structures_xml [1][10][0][2] = "PROGRAMMES" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [1][10][0][3] = 0 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [1][10][0][4] = "" ; // Nom de l'attribut a enregistrer
 $structures_xml [1][10][0][5] = "" ; // Nom du champ pour l'attribut
 
 $structures_xml [1][10][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][10][1][1] = "CODE_MEF" ; // element (avec -> pointeur)
 $structures_xml [1][10][1][2] = "CODE_MEF" ; // Nom du champ destination

 $structures_xml [1][10][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][10][2][1] = "CODE_MATIERE" ; // element (avec -> pointeur)
 $structures_xml [1][10][2][2] = "CODE_MATIERE" ; // Nom du champ destination
 
 $structures_xml [1][10][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][10][3][1] = "HORAIRE" ; // element (avec -> pointeur)
 $structures_xml [1][10][3][2] = "HORAIRE" ; // Nom du champ destination
 
 // DONNEES -> INDIVIDUS
 $structures_xml [1][11][0][0] = 8 ; // Nombre d'elements
 $structures_xml [1][11][0][1] = "STS_EDT".$chaine_pointeur."DONNEES".$chaine_pointeur."INDIVIDUS".$chaine_pointeur."INDIVIDU" ;
 $structures_xml [1][11][0][2] = "INDIVIDUS" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [1][11][0][3] = 2 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [1][11][0][4] = "ID" ; // Nom de l'attribut a enregistrer
 $structures_xml [1][11][0][5] = "ID" ; // Nom du champ pour l'attribut
 $structures_xml [1][11][0][6] = "TYPE" ; // Nom de l'attribut a enregistrer
 $structures_xml [1][11][0][7] = "TYPE" ; // Nom du champ pour l'attribut
 
 $structures_xml [1][11][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][11][1][1] = "SEXE" ; // element (avec -> pointeur)
 $structures_xml [1][11][1][2] = "SEXE" ; // Nom du champ destination

 $structures_xml [1][11][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][11][2][1] = "CIVILITE" ; // element (avec -> pointeur)
 $structures_xml [1][11][2][2] = "CIVILITE" ; // Nom du champ destination
 
 $structures_xml [1][11][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][11][3][1] = "NOM_USAGE" ; // element (avec -> pointeur)
 $structures_xml [1][11][3][2] = "NOM_USAGE" ; // Nom du champ destination
 
 $structures_xml [1][11][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][11][4][1] = "NOM_PATRONYMIQUE" ; // element (avec -> pointeur)
 $structures_xml [1][11][4][2] = "NOM_PATRONYMIQUE" ; // Nom du champ destination
 
 $structures_xml [1][11][5][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][11][5][1] = "PRENOM" ; // element (avec -> pointeur)
 $structures_xml [1][11][5][2] = "PRENOM" ; // Nom du champ destination
 
 $structures_xml [1][11][6][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][11][6][1] = "DATE_NAISSANCE" ; // element (avec -> pointeur)
 $structures_xml [1][11][6][2] = "DATE_NAISSANCE" ; // Nom du champ destination
 
 $structures_xml [1][11][7][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][11][7][1] = "GRADE" ; // element (avec -> pointeur)
 $structures_xml [1][11][7][2] = "GRADE" ; // Nom du champ destination
 
 $structures_xml [1][11][8][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][11][8][1] = "FONCTION" ; // element (avec -> pointeur)
 $structures_xml [1][11][8][2] = "FONCTION" ; // Nom du champ destination
 
 // DONNEES -> STRUCTURE -> DIVISIONS
 $structures_xml [1][12][0][0] = 3 ; // Nombre d'elements
 $structures_xml [1][12][0][1] = "STS_EDT".$chaine_pointeur."DONNEES".$chaine_pointeur."STRUCTURE".$chaine_pointeur."DIVISIONS".$chaine_pointeur."DIVISION" ;
 $structures_xml [1][12][0][2] = "DIVISIONS" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [1][12][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [1][12][0][4] = "CODE" ; // Nom de l'attribut a enregistrer
 $structures_xml [1][12][0][5] = "CODE_DIVISION" ; // Nom du champ pour l'attribut
 
 $structures_xml [1][12][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][12][1][1] = "LIBELLE_LONG" ; // element (avec -> pointeur)
 $structures_xml [1][12][1][2] = "LIBELLE_LONG" ; // Nom du champ destination

 $structures_xml [1][12][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][12][2][1] = "EFFECTIF_PREVU" ; // element (avec -> pointeur)
 $structures_xml [1][12][2][2] = "EFFECTIF_PREVU" ; // Nom du champ destination
 
 $structures_xml [1][12][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][12][3][1] = "EFFECTIF_CALCULE" ; // element (avec -> pointeur)
 $structures_xml [1][12][3][2] = "EFFECTIF_CALCULE" ; // Nom du champ destination
 
 // DONNEES -> STRUCTURE -> GROUPES
 $structures_xml [1][13][0][0] = 4 ; // Nombre d'elements
 $structures_xml [1][13][0][1] = "STS_EDT".$chaine_pointeur."DONNEES".$chaine_pointeur."STRUCTURE".$chaine_pointeur."GROUPES".$chaine_pointeur."GROUPE" ;
 $structures_xml [1][13][0][2] = "GROUPES" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [1][13][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [1][13][0][4] = "CODE" ; // Nom de l'attribut a enregistrer
 $structures_xml [1][13][0][5] = "CODE_GROUPE" ; // Nom du champ pour l'attribut
 
 $structures_xml [1][13][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][13][1][1] = "LIBELLE_LONG" ; // element (avec -> pointeur)
 $structures_xml [1][13][1][2] = "LIBELLE_LONG" ; // Nom du champ destination

 $structures_xml [1][13][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][13][2][1] = "EFFECTIF_PREVU" ; // element (avec -> pointeur)
 $structures_xml [1][13][2][2] = "EFFECTIF_PREVU" ; // Nom du champ destination
 
 $structures_xml [1][13][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][13][3][1] = "EFFECTIF_CALCULE" ; // element (avec -> pointeur)
 $structures_xml [1][13][3][2] = "EFFECTIF_CALCULE" ; // Nom du champ destination
 
 $structures_xml [1][13][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [1][13][4][1] = "EFFECTIF_MAX_EDT" ; // element (avec -> pointeur)
 $structures_xml [1][13][4][2] = "EFFECTIF_MAX_EDT" ; // Nom du champ destination
 
 //
 // STRUCTURE DU XML sts_emp_RNE_ANNEE.xml RECURSIF
 //
 $structures_xml_recursif [1][0][0][0] = 1 ; // Nombre de pointeurs
 $structures_xml_recursif [1][0][0][1] = $chaine_pointeur ; // Chaine de pointage
 $structures_xml_recursif [1][0][0][2] = "STRUC_REC" ; // Entete de nom des tables
 
 //
 // STRUCTURE DU XML EleveAvecAdresses.xml NON RECURSIF
 //
 $structures_xml [2][0][0][0] = 5 ; // Nombre de pointeurs
 $structures_xml [2][0][0][1] = $chaine_pointeur ; // Chaine de pointage
 $structures_xml [2][0][0][2] = "ELEVES" ; // Entete de nom des tables
 
 // PARAMETRES
 $structures_xml [2][1][0][0] = 4 ; // Nombre d'elements
 $structures_xml [2][1][0][1] = "BEE_ELEVES".$chaine_pointeur."PARAMETRES" ; // Pointeur
 $structures_xml [2][1][0][2] = "PARAMETRES" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [2][1][0][3] = 0 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer

 $structures_xml [2][1][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][1][1][1] = "UAJ" ; // element (avec -> pointeur)
 $structures_xml [2][1][1][2] = "UAJ" ; // Nom du champ destination
 
 $structures_xml [2][1][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][1][2][1] = "ANNEE_SCOLAIRE" ; // element (avec -> pointeur)
 $structures_xml [2][1][2][2] = "ANNEE_SCOLAIRE" ; // Nom du champ destination
 
 $structures_xml [2][1][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][1][3][1] = "DATE_EXPORT" ; // element (avec -> pointeur)
 $structures_xml [2][1][3][2] = "DATE_EXPORT" ; // Nom du champ destination
 
 $structures_xml [2][1][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][1][4][1] = "HORODATAGE" ; // element (avec -> pointeur)
 $structures_xml [2][1][4][2] = "HORODATAGE" ; // Nom du champ destination
 
 // ELEVES
 $structures_xml [2][2][0][0] = 28 ; // Nombre d'elements
 $structures_xml [2][2][0][1] = "BEE_ELEVES".$chaine_pointeur."DONNEES".$chaine_pointeur."ELEVES".$chaine_pointeur."ELEVE" ; // Pointeur
 $structures_xml [2][2][0][2] = "ELEVES" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [2][2][0][3] = 2 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [2][2][0][4] = "ELEVE_ID" ; // Nom de l'attribut a enregistrer
 $structures_xml [2][2][0][5] = "ELEVE_ID" ; // Nom du champ pour l'attribut
 $structures_xml [2][2][0][6] = "ELENOET" ; // Nom de l'attribut a enregistrer
 $structures_xml [2][2][0][7] = "ELENOET" ; // Nom du champ pour l'attribut

 $structures_xml [2][2][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][1][1] = "ID_NATIONAL" ; // element (avec -> pointeur)
 $structures_xml [2][2][1][2] = "ID_NATIONAL" ; // Nom du champ destination
 
 $structures_xml [2][2][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][2][1] = "ID_ELEVE_ETAB" ; // element (avec -> pointeur)
 $structures_xml [2][2][2][2] = "ID_ELEVE_ETAB" ; // Nom du champ destination
 
 $structures_xml [2][2][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][3][1] = "NOM" ; // element (avec -> pointeur)
 $structures_xml [2][2][3][2] = "NOM" ; // Nom du champ destination
 
 $structures_xml [2][2][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][4][1] = "PRENOM" ; // element (avec -> pointeur)
 $structures_xml [2][2][4][2] = "PRENOM" ; // Nom du champ destination
 
 $structures_xml [2][2][5][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][5][1] = "PRENOM2" ; // element (avec -> pointeur)
 $structures_xml [2][2][5][2] = "PRENOM2" ; // Nom du champ destination
 
 $structures_xml [2][2][6][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][6][1] = "PRENOM3" ; // element (avec -> pointeur)
 $structures_xml [2][2][6][2] = "PRENOM3" ; // Nom du champ destination
 
 $structures_xml [2][2][7][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][7][1] = "DATE_NAISS" ; // element (avec -> pointeur)
 $structures_xml [2][2][7][2] = "DATE_NAISS" ; // Nom du champ destination
 
 $structures_xml [2][2][8][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][8][1] = "DOUBLEMENT" ; // element (avec -> pointeur)
 $structures_xml [2][2][8][2] = "DOUBLEMENT" ; // Nom du champ destination
 
 $structures_xml [2][2][9][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][9][1] = "TEL_PROFESSIONNEL" ; // element (avec -> pointeur)
 $structures_xml [2][2][9][2] = "TEL_PROFESSIONNEL" ; // Nom du champ destination
 
 $structures_xml [2][2][10][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][10][1] = "CODE_PAYS" ; // element (avec -> pointeur)
 $structures_xml [2][2][10][2] = "CODE_PAYS" ; // Nom du champ destination
 
 $structures_xml [2][2][11][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][11][1] = "ACCEPTE_SMS" ; // element (avec -> pointeur)
 $structures_xml [2][2][11][2] = "ACCEPTE_SMS" ; // Nom du champ destination
 
 $structures_xml [2][2][12][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][12][1] = "DATE_MODIFICATION" ; // element (avec -> pointeur)
 $structures_xml [2][2][12][2] = "DATE_MODIFICATION" ; // Nom du champ destination
 
 $structures_xml [2][2][13][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][13][1] = "DATE_SORTIE" ; // element (avec -> pointeur)
 $structures_xml [2][2][13][2] = "DATE_SORTIE" ; // Nom du champ destination
 
 $structures_xml [2][2][14][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][14][1] = "MEL" ; // element (avec -> pointeur)
 $structures_xml [2][2][14][2] = "MEL" ; // Nom du champ destination
 
 $structures_xml [2][2][15][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][15][1] = "CODE_REGIME" ; // element (avec -> pointeur)
 $structures_xml [2][2][15][2] = "CODE_REGIME" ; // Nom du champ destination
 
 $structures_xml [2][2][16][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][16][1] = "DATE_ENTREE" ; // element (avec -> pointeur)
 $structures_xml [2][2][16][2] = "DATE_ENTREE" ; // Nom du champ destination
 
 $structures_xml [2][2][17][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][17][1] = "VILLE_NAISS" ; // element (avec -> pointeur)
 $structures_xml [2][2][17][2] = "VILLE_NAISS" ; // Nom du champ destination
 
 $structures_xml [2][2][18][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][18][1] = "ADRESSE_ID" ; // element (avec -> pointeur)
 $structures_xml [2][2][18][2] = "ADRESSE_ID" ; // Nom du champ destination
 
 $structures_xml [2][2][19][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][19][1] = "CODE_MOTIF_SORTIE" ; // element (avec -> pointeur)
 $structures_xml [2][2][19][2] = "CODE_MOTIF_SORTIE" ; // Nom du champ destination
 
 $structures_xml [2][2][20][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][20][1] = "TEL_PERSONNEL" ; // element (avec -> pointeur)
 $structures_xml [2][2][20][2] = "TEL_PERSONNEL" ; // Nom du champ destination
 
 $structures_xml [2][2][21][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][21][1] = "CODE_SEXE" ; // element (avec -> pointeur)
 $structures_xml [2][2][21][2] = "CODE_SEXE" ; // Nom du champ destination
 
 $structures_xml [2][2][22][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][22][1] = "TEL_PORTABLE" ; // element (avec -> pointeur)
 $structures_xml [2][2][22][2] = "TEL_PORTABLE" ; // Nom du champ destination
 
 $structures_xml [2][2][23][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][23][1] = "CODE_PAYS_NAT" ; // element (avec -> pointeur)
 $structures_xml [2][2][23][2] = "CODE_PAYS_NAT" ; // Nom du champ destination
 
 $structures_xml [2][2][24][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][24][1] = "CODE_MEF" ; // element (avec -> pointeur)
 $structures_xml [2][2][24][2] = "CODE_MEF" ; // Nom du champ destination
 
 $structures_xml [2][2][25][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][25][1] = "CODE_DEPARTEMENT_NAISS" ; // element (avec -> pointeur)
 $structures_xml [2][2][25][2] = "CODE_DEPARTEMENT_NAISS" ; // Nom du champ destination
 
 $structures_xml [2][2][26][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][26][1] = "CODE_COMMUNE_INSEE" ; // element (avec -> pointeur)
 $structures_xml [2][2][26][2] = "CODE_COMMUNE_INSEE" ; // Nom du champ destination
 
 $structures_xml [2][2][27][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][27][1] = "ADHESION_TRANSPORT" ; // element (avec -> pointeur)
 $structures_xml [2][2][27][2] = "ADHESION_TRANSPORT" ; // Nom du champ destination
 
 $structures_xml [2][2][28][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][2][28][1] = "CODE_PROVENANCE" ; // element (avec -> pointeur)
 $structures_xml [2][2][28][2] = "CODE_PROVENANCE" ; // Nom du champ destination
 
 // OPTIONS
 $structures_xml [2][3][0][0] = 3 ; // Nombre d'elements
 $structures_xml [2][3][0][1] = "BEE_ELEVES".$chaine_pointeur."DONNEES".$chaine_pointeur."OPTIONS".$chaine_pointeur."OPTION" ; // Pointeur
 $structures_xml [2][3][0][2] = "OPTIONS" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [2][3][0][3] = 2 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [2][3][0][4] = "ELEVE_ID" ; // Nom de l'attribut a enregistrer
 $structures_xml [2][3][0][5] = "ELEVE_ID" ; // Nom du champ pour l'attribut
 $structures_xml [2][3][0][6] = "ELENOET" ; // Nom de l'attribut a enregistrer
 $structures_xml [2][3][0][7] = "ELENOET" ; // Nom du champ pour l'attribut

 $structures_xml [2][3][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][3][1][1] = "NUM_OPTION" ; // element (avec -> pointeur)
 $structures_xml [2][3][1][2] = "NUM_OPTION" ; // Nom du champ destination
 
 $structures_xml [2][3][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][3][2][1] = "CODE_MODALITE_ELECT" ; // element (avec -> pointeur)
 $structures_xml [2][3][2][2] = "CODE_MODALITE_ELECT" ; // Nom du champ destination
 
 $structures_xml [2][3][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][3][3][1] = "CODE_MATIERE" ; // element (avec -> pointeur)
 $structures_xml [2][3][3][2] = "CODE_MATIERE" ; // Nom du champ destination
 
 // BOURSES
 $structures_xml [2][4][0][0] = 1 ; // Nombre d'elements
 $structures_xml [2][4][0][1] = "BEE_ELEVES".$chaine_pointeur."DONNEES".$chaine_pointeur."BOURSES".$chaine_pointeur."BOURSE" ; // Pointeur
 $structures_xml [2][4][0][2] = "BOURSES" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [2][4][0][3] = 2 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [2][4][0][4] = "ELEVE_ID" ; // Nom de l'attribut a enregistrer
 $structures_xml [2][4][0][5] = "ELEVE_ID" ; // Nom du champ pour l'attribut
 $structures_xml [2][4][0][6] = "ELENOET" ; // Nom de l'attribut a enregistrer
 $structures_xml [2][4][0][7] = "ELENOET" ; // Nom du champ pour l'attribut

 $structures_xml [2][4][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][4][1][1] = "CODE_BOURSE" ; // element (avec -> pointeur)
 $structures_xml [2][4][1][2] = "CODE_BOURSE" ; // Nom du champ destination
 
 // ADRESSES
 $structures_xml [2][5][0][0] = 12 ; // Nombre d'elements
 $structures_xml [2][5][0][1] = "BEE_ELEVES".$chaine_pointeur."DONNEES".$chaine_pointeur."ADRESSES".$chaine_pointeur."ADRESSE" ; // Pointeur
 $structures_xml [2][5][0][2] = "ADRESSES" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [2][5][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [2][5][0][4] = "ADRESSE_ID" ; // Nom de l'attribut a enregistrer
 $structures_xml [2][5][0][5] = "ADRESSE_ID" ; // Nom du champ pour l'attribut

 $structures_xml [2][5][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][5][1][1] = "LIGNE1_ADRESSE" ; // element (avec -> pointeur)
 $structures_xml [2][5][1][2] = "LIGNE1_ADRESSE" ; // Nom du champ destination
 
 $structures_xml [2][5][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][5][2][1] = "LIGNE2_ADRESSE" ; // element (avec -> pointeur)
 $structures_xml [2][5][2][2] = "LIGNE2_ADRESSE" ; // Nom du champ destination
 
 $structures_xml [2][5][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][5][3][1] = "LIGNE3_ADRESSE" ; // element (avec -> pointeur)
 $structures_xml [2][5][3][2] = "LIGNE3_ADRESSE" ; // Nom du champ destination
 
 $structures_xml [2][5][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][5][4][1] = "LIGNE4_ADRESSE" ; // element (avec -> pointeur)
 $structures_xml [2][5][4][2] = "LIGNE4_ADRESSE" ; // Nom du champ destination
 
 $structures_xml [2][5][5][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][5][5][1] = "BOITE_POSTALE" ; // element (avec -> pointeur)
 $structures_xml [2][5][5][2] = "BOITE_POSTALE" ; // Nom du champ destination
 
 $structures_xml [2][5][6][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][5][6][1] = "COMMUNE_ETRANGERE" ; // element (avec -> pointeur)
 $structures_xml [2][5][6][2] = "COMMUNE_ETRANGERE" ; // Nom du champ destination
 
 $structures_xml [2][5][7][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][5][7][1] = "CODE_POSTAL" ; // element (avec -> pointeur)
 $structures_xml [2][5][7][2] = "CODE_POSTAL" ; // Nom du champ destination
 
 $structures_xml [2][5][8][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][5][8][1] = "CODE_PAYS" ; // element (avec -> pointeur)
 $structures_xml [2][5][8][2] = "CODE_PAYS" ; // Nom du champ destination
 
 $structures_xml [2][5][9][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][5][9][1] = "CODE_COMMUNE_INSEE" ; // element (avec -> pointeur)
 $structures_xml [2][5][9][2] = "CODE_COMMUNE_INSEE" ; // Nom du champ destination
 
 $structures_xml [2][5][10][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][5][10][1] = "LL_PAYS" ; // element (avec -> pointeur)
 $structures_xml [2][5][10][2] = "LL_PAYS" ; // Nom du champ destination
 
 $structures_xml [2][5][11][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][5][11][1] = "CODE_DEPARTEMENT" ; // element (avec -> pointeur)
 $structures_xml [2][5][11][2] = "CODE_DEPARTEMENT" ; // Nom du champ destination
 
 $structures_xml [2][5][12][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [2][5][12][1] = "LIBELLE_POSTAL" ; // element (avec -> pointeur)
 $structures_xml [2][5][12][2] = "LIBELLE_POSTAL" ; // Nom du champ destination
 
 //
 // STRUCTURE DU XML ResponsablesAvecAdresses.xml NON RECURSIF
 //
 $structures_xml [3][0][0][0] = 4 ; // Nombre de pointeurs
 $structures_xml [3][0][0][1] = $chaine_pointeur ; // Chaine de pointage
 $structures_xml [3][0][0][2] = "RESPONSABLES" ; // Entete de nom des tables
 
 // PARAMETRES
 $structures_xml [3][1][0][0] = 4 ; // Nombre d'elements
 $structures_xml [3][1][0][1] = "BEE_RESPONSABLES".$chaine_pointeur."PARAMETRES" ; // Pointeur
 $structures_xml [3][1][0][2] = "PARAMETRES" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [3][1][0][3] = 0 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer

 $structures_xml [3][1][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][1][1][1] = "UAJ" ; // element (avec -> pointeur)
 $structures_xml [3][1][1][2] = "UAJ" ; // Nom du champ destination
 
 $structures_xml [3][1][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][1][2][1] = "ANNEE_SCOLAIRE" ; // element (avec -> pointeur)
 $structures_xml [3][1][2][2] = "ANNEE_SCOLAIRE" ; // Nom du champ destination
 
 $structures_xml [3][1][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][1][3][1] = "DATE_EXPORT" ; // element (avec -> pointeur)
 $structures_xml [3][1][3][2] = "DATE_EXPORT" ; // Nom du champ destination
 
 $structures_xml [3][1][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][1][4][1] = "HORODATAGE" ; // element (avec -> pointeur)
 $structures_xml [3][1][4][2] = "HORODATAGE" ; // Nom du champ destination
 
 // PERSONNES
 $structures_xml [3][2][0][0] = 12 ; // Nombre d'elements
 $structures_xml [3][2][0][1] = "BEE_RESPONSABLES".$chaine_pointeur."DONNEES".$chaine_pointeur."PERSONNES".$chaine_pointeur."PERSONNE" ; // Pointeur
 $structures_xml [3][2][0][2] = "PERSONNES" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [3][2][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [3][2][0][4] = "PERSONNE_ID" ; // Nom de l'attribut a enregistrer
 $structures_xml [3][2][0][5] = "PERSONNE_ID" ; // Nom du champ pour l'attribut

 $structures_xml [3][2][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][2][1][1] = "LC_CIVILITE" ; // element (avec -> pointeur)
 $structures_xml [3][2][1][2] = "LC_CIVILITE" ; // Nom du champ destination
 
 $structures_xml [3][2][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][2][2][1] = "LL_CIVILITE" ; // element (avec -> pointeur)
 $structures_xml [3][2][2][2] = "LL_CIVILITE" ; // Nom du champ destination
 
 $structures_xml [3][2][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][2][3][1] = "NOM" ; // element (avec -> pointeur)
 $structures_xml [3][2][3][2] = "NOM" ; // Nom du champ destination

 $structures_xml [3][2][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][2][4][1] = "PRENOM" ; // element (avec -> pointeur)
 $structures_xml [3][2][4][2] = "PRENOM" ; // Nom du champ destination
 
 $structures_xml [3][2][5][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][2][5][1] = "TEL_PERSONNEL" ; // element (avec -> pointeur)
 $structures_xml [3][2][5][2] = "TEL_PERSONNEL" ; // Nom du champ destination
 
 $structures_xml [3][2][6][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][2][6][1] = "TEL_PORTABLE" ; // element (avec -> pointeur)
 $structures_xml [3][2][6][2] = "TEL_PORTABLE" ; // Nom du champ destination
 
 $structures_xml [3][2][7][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][2][7][1] = "ACCEPTE_SMS" ; // element (avec -> pointeur)
 $structures_xml [3][2][7][2] = "ACCEPTE_SMS" ; // Nom du champ destination
 
 $structures_xml [3][2][8][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][2][8][1] = "TEL_PROFESSIONNEL" ; // element (avec -> pointeur)
 $structures_xml [3][2][8][2] = "TEL_PROFESSIONNEL" ; // Nom du champ destination
 
 $structures_xml [3][2][9][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][2][9][1] = "MEL" ; // element (avec -> pointeur)
 $structures_xml [3][2][9][2] = "MEL" ; // Nom du champ destination
 
 $structures_xml [3][2][10][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][2][10][1] = "COMMUNICATION_ADRESSE" ; // element (avec -> pointeur)
 $structures_xml [3][2][10][2] = "COMMUNICATION_ADRESSE" ; // Nom du champ destination
 
 $structures_xml [3][2][11][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][2][11][1] = "ADRESSE_ID" ; // element (avec -> pointeur)
 $structures_xml [3][2][11][2] = "ADRESSE_ID" ; // Nom du champ destination
 
 $structures_xml [3][2][12][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][2][12][1] = "CODE_PROFESSION" ; // element (avec -> pointeur)
 $structures_xml [3][2][12][2] = "CODE_PROFESSION" ; // Nom du champ destination
 
 // RESPONSABLES
 $structures_xml [3][3][0][0] = 7 ; // Nombre d'elements
 $structures_xml [3][3][0][1] = "BEE_RESPONSABLES".$chaine_pointeur."DONNEES".$chaine_pointeur."RESPONSABLES".$chaine_pointeur."RESPONSABLE_ELEVE" ; // Pointeur
 $structures_xml [3][3][0][2] = "RESPONSABLES" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [3][3][0][3] = 0 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer

 $structures_xml [3][3][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][3][1][1] = "ELEVE_ID" ; // element (avec -> pointeur)
 $structures_xml [3][3][1][2] = "ELEVE_ID" ; // Nom du champ destination
 
 $structures_xml [3][3][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][3][2][1] = "PERSONNE_ID" ; // element (avec -> pointeur)
 $structures_xml [3][3][2][2] = "PERSONNE_ID" ; // Nom du champ destination
 
 $structures_xml [3][3][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][3][3][1] = "RESP_LEGAL" ; // element (avec -> pointeur)
 $structures_xml [3][3][3][2] = "RESP_LEGAL" ; // Nom du champ destination

 $structures_xml [3][3][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][3][4][1] = "CODE_PARENTE" ; // element (avec -> pointeur)
 $structures_xml [3][3][4][2] = "CODE_PARENTE" ; // Nom du champ destination
 
 $structures_xml [3][3][5][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][3][5][1] = "RESP_FINANCIER" ; // element (avec -> pointeur)
 $structures_xml [3][3][5][2] = "RESP_FINANCIER" ; // Nom du champ destination
 
 $structures_xml [3][3][6][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][3][6][1] = "PERS_PAIEMENT" ; // element (avec -> pointeur)
 $structures_xml [3][3][6][2] = "PERS_PAIEMENT" ; // Nom du champ destination
 
 $structures_xml [3][3][7][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][3][7][1] = "PERS_CONTACT" ; // element (avec -> pointeur)
 $structures_xml [3][3][7][2] = "PERS_CONTACT" ; // Nom du champ destination
 
 // ADRESSES
 $structures_xml [3][4][0][0] = 12 ; // Nombre d'elements
 $structures_xml [3][4][0][1] = "BEE_RESPONSABLES".$chaine_pointeur."DONNEES".$chaine_pointeur."ADRESSES".$chaine_pointeur."ADRESSE" ; // Pointeur
 $structures_xml [3][4][0][2] = "ADRESSES" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [3][4][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [3][4][0][4] = "ADRESSE_ID" ; // Nom de l'attribut a enregistrer
 $structures_xml [3][4][0][5] = "ADRESSE_ID" ; // Nom du champ pour l'attribut

 $structures_xml [3][4][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][4][1][1] = "LIGNE1_ADRESSE" ; // element (avec -> pointeur)
 $structures_xml [3][4][1][2] = "LIGNE1_ADRESSE" ; // Nom du champ destination
 
 $structures_xml [3][4][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][4][2][1] = "LIGNE2_ADRESSE" ; // element (avec -> pointeur)
 $structures_xml [3][4][2][2] = "LIGNE2_ADRESSE" ; // Nom du champ destination
 
 $structures_xml [3][4][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][4][3][1] = "LIGNE3_ADRESSE" ; // element (avec -> pointeur)
 $structures_xml [3][4][3][2] = "LIGNE3_ADRESSE" ; // Nom du champ destination
 
 $structures_xml [3][4][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][4][4][1] = "LIGNE4_ADRESSE" ; // element (avec -> pointeur)
 $structures_xml [3][4][4][2] = "LIGNE4_ADRESSE" ; // Nom du champ destination
 
 $structures_xml [3][4][5][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][4][5][1] = "BOITE_POSTALE" ; // element (avec -> pointeur)
 $structures_xml [3][4][5][2] = "BOITE_POSTALE" ; // Nom du champ destination
 
 $structures_xml [3][4][6][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][4][6][1] = "COMMUNE_ETRANGERE" ; // element (avec -> pointeur)
 $structures_xml [3][4][6][2] = "COMMUNE_ETRANGERE" ; // Nom du champ destination
 
 $structures_xml [3][4][7][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][4][7][1] = "CODE_POSTAL" ; // element (avec -> pointeur)
 $structures_xml [3][4][7][2] = "CODE_POSTAL" ; // Nom du champ destination
 
 $structures_xml [3][4][8][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][4][8][1] = "CODE_PAYS" ; // element (avec -> pointeur)
 $structures_xml [3][4][8][2] = "CODE_PAYS" ; // Nom du champ destination
 
 $structures_xml [3][4][9][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][4][9][1] = "CODE_COMMUNE_INSEE" ; // element (avec -> pointeur)
 $structures_xml [3][4][9][2] = "CODE_COMMUNE_INSEE" ; // Nom du champ destination
 
 $structures_xml [3][4][10][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][4][10][1] = "LL_PAYS" ; // element (avec -> pointeur)
 $structures_xml [3][4][10][2] = "LL_PAYS" ; // Nom du champ destination
 
 $structures_xml [3][4][11][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][4][11][1] = "CODE_DEPARTEMENT" ; // element (avec -> pointeur)
 $structures_xml [3][4][11][2] = "CODE_DEPARTEMENT" ; // Nom du champ destination
 
 $structures_xml [3][4][12][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [3][4][12][1] = "LIBELLE_POSTAL" ; // element (avec -> pointeur)
 $structures_xml [3][4][12][2] = "LIBELLE_POSTAL" ; // Nom du champ destination
 
 //
 // STRUCTURE DU XML Nomenclature.xml NON COMPLET
 //
 $structures_xml [4][0][0][0] = 3 ; // Nombre de pointeurs
 $structures_xml [4][0][0][1] = $chaine_pointeur ; // Chaine de pointage
 $structures_xml [4][0][0][2] = "NOMENCLATURES" ; // Entete de nom des tables
 
 // PROGRAMMES
 $structures_xml [4][1][0][0] = 4 ; // Nombre d'elements
 $structures_xml [4][1][0][1] = "BEE_NOMENCLATURES".$chaine_pointeur."DONNEES".$chaine_pointeur."PROGRAMMES".$chaine_pointeur."PROGRAMME" ; // Pointeur
 $structures_xml [4][1][0][2] = "PROGRAMMES" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [4][1][0][3] = 0 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer

 $structures_xml [4][1][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [4][1][1][1] = "CODE_MEF" ; // element (avec -> pointeur)
 $structures_xml [4][1][1][2] = "CODE_MEF" ; // Nom du champ destination
 
 $structures_xml [4][1][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [4][1][2][1] = "CODE_MATIERE" ; // element (avec -> pointeur)
 $structures_xml [4][1][2][2] = "CODE_MATIERE" ; // Nom du champ destination
 
 $structures_xml [4][1][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [4][1][3][1] = "CODE_MODALITE_ELECT" ; // element (avec -> pointeur)
 $structures_xml [4][1][3][2] = "MODALITE_ELECTION" ; // Nom du champ destination
 
 $structures_xml [4][1][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [4][1][4][1] = "HORAIRE" ; // element (avec -> pointeur)
 $structures_xml [4][1][4][2] = "HORAIRE" ; // Nom du champ destination
 
 // MODALITES ELECTION
 $structures_xml [4][2][0][0] = 2 ; // Nombre d'elements
 $structures_xml [4][2][0][1] = "BEE_NOMENCLATURES".$chaine_pointeur."DONNEES".$chaine_pointeur."MODALITES_ELECTION".$chaine_pointeur."MODALITE_ELECTION" ; // Pointeur
 $structures_xml [4][2][0][2] = "MODALITES_ELECTION" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [4][2][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [4][2][0][4] = $structures_xml [4][1][3][1] ; // Nom de l'attribut a enregistrer
 $structures_xml [4][2][0][5] = $structures_xml [4][1][3][2] ; // Nom du champ pour l'attribut

 $structures_xml [4][2][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [4][2][1][1] = "LIBELLE_COURT" ; // element (avec -> pointeur)
 $structures_xml [4][2][1][2] = "LIBELLE_COURT" ; // Nom du champ destination
 
 $structures_xml [4][2][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [4][2][2][1] = "LIBELLE_LONG" ; // element (avec -> pointeur)
 $structures_xml [4][2][2][2] = "LIBELLE_LONG" ; // Nom du champ destination
 
 // MATIERES
 $structures_xml [4][3][0][0] = 5 ; // Nombre d'elements
 $structures_xml [4][3][0][1] = "BEE_NOMENCLATURES".$chaine_pointeur."DONNEES".$chaine_pointeur."MATIERES".$chaine_pointeur."MATIERE" ; // Pointeur
 $structures_xml [4][3][0][2] = "MATIERES" ; // Nom de la table precedee par $sql_sconet
 $structures_xml [4][3][0][3] = 1 ; // Enregistrer Attributs du pointeur : 0=Non,>=1=Oui et nombre d'attributs a enregistrer
 $structures_xml [4][3][0][4] = "CODE_MATIERE" ; // Nom de l'attribut a enregistrer
 $structures_xml [4][3][0][5] = "CODE_MATIERE" ; // Nom du champ pour l'attribut

 $structures_xml [4][3][1][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [4][3][1][1] = "CODE_GESTION" ; // element (avec -> pointeur)
 $structures_xml [4][3][1][2] = "CODE_GESTION" ; // Nom du champ destination
 
 $structures_xml [4][3][2][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [4][3][2][1] = "LIBELLE_COURT" ; // element (avec -> pointeur)
 $structures_xml [4][3][2][2] = "LIBELLE_COURT" ; // Nom du champ destination
 
 $structures_xml [4][3][3][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [4][3][3][1] = "LIBELLE_LONG" ; // element (avec -> pointeur)
 $structures_xml [4][3][3][2] = "LIBELLE_LONG" ; // Nom du champ destination
 
 $structures_xml [4][3][4][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [4][3][4][1] = "LIBELLE_EDITION" ; // element (avec -> pointeur)
 $structures_xml [4][3][4][2] = "LIBELLE_EDITION" ; // Nom du champ destination
 
 $structures_xml [4][3][5][0] = 1 ; // Type element : 0=Attribut,1=Donnee
 $structures_xml [4][3][5][1] = "MATIERE_ETP" ; // element (avec -> pointeur)
 $structures_xml [4][3][5][2] = "MATIERE_ETP" ; // Nom du champ destination
 
 /**
 * Extraction de l'attribut $nom dans la chaine $chaine
 * @param string $nom Nom de l'attribut sans "="
 * @param string $chaine Chaine contenant ou pas l'attribut
 * @return string Contenu de l'attribut
 */
 Function attribut ($nom, $chaine)
  {
   $code = "" ;
   $tmp1 = Explode ($nom."=", $chaine) ;
   If (IsSet ($tmp1 [1]))
    {
     $tmp2 = Explode ("\"", $tmp1 [1]) ;
     $tmp3 = Str_Replace ("'", "\'", $tmp2 [1]) ;
     $code = Str_Replace ("'", "\'", $tmp3) ; // filtrage_utf8 (
    }
   Return $code ;
  }
 
 /**
 * Extraction d'un champ XML
 * @param string $c Chaine a extraire
 * @param mixed $table Table de pointeurs ou champ a extraire
 * @return array Table extraite
 */
 Function extraction ($c, $table)
  {
   Global $recursif, $max_recursif ;
   If (Is_Array ($table) And (SizeOf ($table) > 1))
    {
     $recursif++ ;
     If ($recursif > $max_recursif) { Exit ; }
     $f1 = extraction ($c, $table [0]) ;
     If ($f1 [0][0] > 1)
      {
       $f2 [0][0] = 0 ;
       For ($i = 1 ; $i <= $f1 [0][0] ; $i++)
        {
         $f3 = extraction ($f1 [$i][1], Array_Slice ($table, 1)) ;
         For ($j = 1 ; $j <= $f3 [0][0] ; $j++)
          {
           $f2 [0][0]++ ;
           $f2 [$f2 [0][0]][0] = $f3 [$j][0] ;
           $f2 [$f2 [0][0]][1] = $f3 [$j][1] ;
          }
        }
       Return $f2 ;
      }
     Else
      {
       If (IsSet ($f1 [1][1]))
        {
         $f2 = extraction ($f1 [1][1], Array_Slice ($table, 1)) ;
         Return $f2 ;
        }
       Else { $t [0][0] = 0 ; Return $t ; }
      }
    }
   Else
    {
     If (Is_Array ($table)) { $champ = $table [0] ; } Else { $champ = $table ; }
     $c5 [0][0] = 0 ;
     $c5 [0][1] = $champ ;
     If ((!StrPos ($c, "<".$champ." />")) And ((StrPos ($c, "<".$champ." ")) Or (StrPos ($c, "<".$champ.">"))))
      {
       While (StrPos ($c, "<".$champ))
        {
         // Recherche champ
         $p1 = StrPos ($c, "<".$champ) ;
         $p11 = StrPos ($c, "<".$champ." ") ;
         $p12 = StrPos ($c, "<".$champ.">") ;
         If (($p1 != $p11) And ($p1 != $p12)) { If ($p11) { $p1 = $p11 ; } Else { $p1 = $p12 ; } }
         $p2 = StrPos ($c, "</".$champ.">") ;
         If (!$p2) { $p1 = $p2 = StrPos ($c, "<".$champ."/>") ; }
         $p3 = $p2-$p1 ;
         $c1 = SubStr ($c, $p1, $p3) ;
         // Suite chaine
         $p4 = $p2+StrLen ("</".$champ.">") ;
         $p5 = StrLen ($c)-$p4 ;
         $c = SubStr ($c, $p4, $p5) ;
         // Recherche d'attributs
         $c2 = Explode ("<", $c1) ;
         If (IsSet ($c2 [1]))
          {
           $c3 = Explode (">", $c2 [1]) ;
           If (!StrPos ($c3 [0], "=")) { $c4 = StrLen ("<".$champ.">") ; $c1 = SubStr ($c1, $c4, StrLen ($c1)-$c4) ; $c3 [0] = "" ; }
           Else { $c4 = StrPos ($c1, ">") ; $c1 = SubStr ($c1, $c4+1, StrLen ($c1)-$c4+1) ; }
          }
         Else { $c3 [0] = ""  ; }
         // Enregistrement
         $c5 [0][0]++ ;
         $c5 [$c5 [0][0]][0] = $c3 [0] ; // Attributs filtrage_utf8
         $c5 [$c5 [0][0]][1] = $c1 ; // Champ filtrage_utf8
        }
      }
     Return $c5 ;
    }
  }

 /**
 * Test du millesime du fichier XML a importer
 * @param string $chaine Chaine a extraire
 * @param int $millesime Millesime de test
 * @return boolean Indique si le milleisme est le bon
 */
 Function garennes_verification_millesime ($chaine, $millesime)
  {
   $tableau = extraction ($chaine, Array ("PARAMETRES","ANNEE_SCOLAIRE")) ;
   $millesime_fichier = attribut ("ANNEE", $tableau [1][0]) ;
   If (($millesime_fichier == $millesime) Or ($tableau [1][1] == $millesime)) { Return True ; }
   Return False ;
  }

 /**
 * Creation des tables SQL a partir d'une extraction XML
 * @param string $chaine Chaine a extraire
 * @param string $s_xml Tableau de la structure a appliquer
 * @param int $numero Numero de la structure
 */
 Function creation_tables ($chaine, $s_xml, $numero)
  {
   Global $id_sql, $recursif, $sql_sconet, $type_champ_auto, $type_donnees, $attribut_donnees, $table, $caracteres_client_SQL ;
   /*
   $pos_1 = StrPos ($chaine, "<?xml ") ;
   If ($pos_1 === false) { $ok_transmission = 0 ; }
   Else
    {
     $pos_2 = StrPos ($chaine, "?>") ;
     $xml_1 = SubStr ($chaine, $pos_1+5, $pos_2-$pos_1-5) ;
     $pos_3 = StrPos ($xml_1, "encoding=") ;
     If ($pos_3 === false) { $ok_transmission = 0 ; }
     Else
      {
       $xml_2 = SubStr ($xml_1, $pos_3+9, StrLen ($xml_1)-$pos_3-9) ;
       $xml_3 = Explode ("\"", $xml_2) ;
       //echo $xml_3 [0]."->".$xml_3 [1]."->".$xml_3 [2]."<br>" ;
       // Faire une verification avec 'SHOW CHARACTER SET' pour voir s'il existe
       If ($xml_3 [1] == "ISO-8859-15")
        {
         $caracteres_client_SQL_sauve = $caracteres_client_SQL ;
         $caracteres_client_SQL = "latin1" ;
         SQL_transmission (1) ;
         $ok_transmission = 1 ;
	}
      }
    }
   */
   $chaine_pointeur = $s_xml [$numero][0][0][1] ;
   For ($i = 1 ; $i <= $s_xml [$numero][0][0][0] ; $i++)
    {
     $requete_destruction = "DROP TABLE ".$sql_sconet."_".$s_xml [$numero][0][0][2]."_".$s_xml [$numero][$i][0][2] ;
     $requete_creation = "CREATE TABLE ".$sql_sconet."_".$s_xml [$numero][0][0][2]."_".$s_xml [$numero][$i][0][2]." (ID_".$s_xml [$numero][$i][0][2]." ".$type_champ_auto ;
     // Attributs
     For ($j = 1 ; $j <= $s_xml [$numero][$i][0][3] ; $j++)
      {
       $requete_creation .= ",".$s_xml [$numero][$i][0][3+$j*2]." ".$type_donnees." ".$attribut_donnees ;
      }
     // Champs avec attributs et donnees
     For ($j = 1 ; $j <= $s_xml [$numero][$i][0][0] ; $j++)
      {
       $requete_creation .= "," ;
       If ($s_xml [$numero][$i][$j][0] == 1) { $requete_creation .= $s_xml [$numero][$i][$j][2] ; }
       Else { $requete_creation .= $s_xml [$numero][$i][$j][3] ; }
       $requete_creation .= " ".$type_donnees." ".$attribut_donnees ;
      }
     $requete_creation .= ")" ;
     $requete_insertion = "INSERT INTO ".$sql_sconet."_".$s_xml [$numero][0][0][2]."_".$s_xml [$numero][$i][0][2]." VALUES " ;
     $recursif = 0 ;
     $tableau1 = extraction ($chaine, Explode ($chaine_pointeur, $s_xml [$numero][$i][0][1])) ;
     If (IsSet ($tableau1) And Is_Array ($tableau1))
      {
       If ($tableau1 [0][0] > 0)
        {
         $table [0]++ ;
         $table [$table [0]] = $sql_sconet."_".$s_xml [$numero][0][0][2]."_".$s_xml [$numero][$i][0][2] ;
         For ($j = 1 ; $j <= $tableau1 [0][0] ; $j++)
          {
           If ($j > 1) { $requete_insertion .= "," ; }
           $requete_insertion .= "(''" ;
           // Attributs
           If ($s_xml [$numero][$i][0][3] > 0)
            {
             For ($k = 1 ; $k <= $s_xml [$numero][$i][0][3] ; $k++)
              {
               $requete_insertion .= ",'".attribut ($s_xml [$numero][$i][0][2+$k*2], $tableau1 [$j][0])."'" ;
              }
            }
           // Champs
           For ($k = 1 ; $k <= $s_xml [$numero][$i][0][0] ; $k++)
            {
             $recursif = 0 ; 
             $tableau2 = extraction ($tableau1 [$j][1], Explode ($chaine_pointeur, $s_xml [$numero][$i][$k][1])) ;
             If ($s_xml [$numero][$i][$k][0] == 0)
              {
               // Attribut
               $requete_insertion .= ",'".attribut ($s_xml [$numero][$i][$k][2], $tableau2 [1][0])."'" ;
              }
             Else
              {
               // Donnee
               $requete_insertion .= ",'" ;
               If (IsSet ($tableau2 [1][1])) { $requete_insertion .= Str_Replace ("'", "\'", $tableau2 [1][1]) ; }
               $requete_insertion .= "'" ;
              }
            }
           $requete_insertion .= ")" ;
          }
         //echo "Cr&eacute;ation de la table <b>".$table [$table [0]]."</b>->".$tableau1 [0][0]."<br>" ;
	 $requete_insertion = conversion_ascii_utf8 ($requete_insertion) ;
         $ok = SQL_commande ($requete_destruction, $id_sql) ;
         $ok = SQL_commande ($requete_creation, $id_sql) ;
         $ok = SQL_commande ($requete_insertion, $id_sql) ;
	}
      }
    }
   //If ($ok_transmission == 1) { $caracteres_client_SQL = $caracteres_client_SQL_sauve ; SQL_transmission (1) ; }
  }

 /**
 * Importation de la structure en recursif
 * @param string $chaine Chaine a extraire
 * @param string $entete Entete du nom des tables a creer
 */
 Function importation_recursive_structure ($chaine, $entete)
  {
   Global $id_sql, $table, $sql_sconet, $type_champ_auto, $type_donnees, $attribut_donnees ;
   
   // Gestion des individus
   // INDIVIDUS
   $recursif = 0 ;
   // Traitement DISCIPLINES
   $table [0]++ ;
   $table [$table [0]] = $sql_sconet."_".$entete."_DISCIPLINES" ;
   $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_DISCIPLINES" ;
   $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_DISCIPLINES (ID_DISCIPLINES ".$type_champ_auto."," ;
   $requete_creation .= "ID_INDIVIDU ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "CODE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "LIBELLE_COURT ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "NB_HEURES ".$type_donnees." ".$attribut_donnees.")" ;
   //echo "Cr&eacute;ation de la table <b>".$sql_sconet."_".$entete."_DISCIPLINES</b><br>" ;
   $ok = SQL_commande ($requete_destruction, $id_sql) ;
   $ok = SQL_commande ($requete_creation, $id_sql) ;
   // Traitement PROFS_PRINC
   $table [0]++ ;
   $table [$table [0]] = $sql_sconet."_".$entete."_PROFS_PRINC" ;
   $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_PROFS_PRINC" ;
   $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_PROFS_PRINC (ID_PROFS_PRINC ".$type_champ_auto."," ;
   $requete_creation .= "ID_INDIVIDU ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "CODE_STRUCTURE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "DATE_DEBUT ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "DATE_FIN ".$type_donnees." ".$attribut_donnees.")" ;
   //echo "Cr&eacute;ation de la table <b>".$sql_sconet."_".$entete."_PROFS_PRINC</b><br>" ;
   $ok = SQL_commande ($requete_destruction, $id_sql) ;
   $ok = SQL_commande ($requete_creation, $id_sql) ;
                   
   $tableau = extraction ($chaine, Array ("STS_EDT","DONNEES","INDIVIDUS","INDIVIDU")) ;
   For ($i = 1 ; $i <= $tableau [0][0] ; $i++)
    {
     $ok = 0 ;
     // Recuperation du ID INDIVIDU
     $id_individu = attribut ("ID", $tableau [$i][0]) ;
                 
     // Traitement DISCIPLINES
     $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_DISCIPLINES VALUES " ;
     $tableau2 = extraction ($tableau [$i][1], Array ("DISCIPLINES")) ;
     For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++)
      {
       $tableau3 = extraction ($tableau2 [$j][1], Array ("DISCIPLINE")) ;
       For ($k = 1 ; $k <= $tableau3 [0][0] ; $k++)
        {
         // Recuperation du CODE
         $code = attribut ("CODE", $tableau3 [$k][0]) ;
         $tableau4 = extraction ($tableau3 [$k][1], Array ("LIBELLE_COURT")) ;
         $tableau5 = extraction ($tableau3 [$k][1], Array ("NB_HEURES")) ;
         If ($ok == 1) { $requete_insertion .= "," ; }
         $requete_insertion .= "('','".$id_individu."','".$code."','".Str_Replace ("'", "\'", $tableau4 [1][1])."','".Str_Replace ("'", "\'", $tableau5 [1][1])."')" ;
         $ok = 1 ;
        }
      }
     If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; }
          
     // Traitement PROFS_PRINC
     $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_PROFS_PRINC VALUES " ;
     $tableau2 = extraction ($tableau [$i][1], Array ("PROFS_PRINC")) ;
     $ok = 0 ;
     For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++)
      {
       $tableau3 = extraction ($tableau2 [$j][1], Array ("PROF_PRINC")) ;
       For ($k = 1 ; $k <= $tableau3 [0][0] ; $k++)
        {
         $tableau4 = extraction ($tableau3 [$k][1], Array ("CODE_STRUCTURE")) ;
         $tableau5 = extraction ($tableau3 [$k][1], Array ("DATE_DEBUT")) ;
         $tableau6 = extraction ($tableau3 [$k][1], Array ("DATE_FIN")) ;
         If ($ok == 1) { $requete_insertion .= "," ; }
         $requete_insertion .= "('','".$id_individu."','".Str_Replace ("'", "\'", $tableau4 [1][1])."'," ;
         $requete_insertion .= "'".Str_Replace ("'", "\'", $tableau5 [1][1])."','".Str_Replace ("'", "\'", $tableau6 [1][1])."')" ;
         $ok = 1 ;
        }
      }
     If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; }
    }
           
   // Gestion des divisions
   // DIVISIONS
   $recursif = 0 ;
   // Traitement MEF APPARTENANCE DIVISIONS
   $table [0]++ ;
   $table [$table [0]] = $sql_sconet."_".$entete."_MEFS_APPARTENANCE_DIVISIONS" ;
   $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_DIVISIONS" ;
   $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_DIVISIONS (ID_MEFS_APPARTENANCE_DIVISIONS ".$type_champ_auto."," ;
   $requete_creation .= "CODE_DIVISION ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "CODE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "EFFECTIF_PREVU ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "EFFECTIF_CALCULE ".$type_donnees." ".$attribut_donnees.")" ;
   //echo "Cr&eacute;ation de la table <b>".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_DIVISIONS</b><br>" ;
   $ok = SQL_commande ($requete_destruction, $id_sql) ;
   $ok = SQL_commande ($requete_creation, $id_sql) ;
   // Traitement SERVICES DIVISIONS
   $table [0]++ ;
   $table [$table [0]] = $sql_sconet."_".$entete."_SERVICES_DIVISIONS" ;
   $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_SERVICES_DIVISIONS" ;
   $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_SERVICES_DIVISIONS (ID_SERVICES_DIVISIONS ".$type_champ_auto."," ;
   $requete_creation .= "CODE_DIVISION ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "CODE_MATIERE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "CODE_MODS_COURS ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "HEURES_STRUCTURE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "CO_ENS ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "ENSEIGNANT_ID ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "ENSEIGNANT_TYPE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "HEURES_AGENT ".$type_donnees." ".$attribut_donnees.",OK ".$type_donnees." ".$attribut_donnees.")" ;
   //echo "Cr&eacute;ation de la table <b>".$sql_sconet."_".$entete."_SERVICES_DIVISIONS</b><br>" ;
   $ok = SQL_commande ($requete_destruction, $id_sql) ;
   $ok = SQL_commande ($requete_creation, $id_sql) ;
   
   $tableau = extraction ($chaine, Array ("STS_EDT","DONNEES","DIVISIONS","DIVISION")) ;
   For ($i = 1 ; $i <= $tableau [0][0] ; $i++)
    {
     // Recuperation du CODE DIVISION
     $code_division = attribut ("CODE", $tableau [$i][0]) ;
     
     // Traitement MEF APPARTENANCE
     $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_DIVISIONS VALUES " ;
     $tableau2 = extraction ($tableau [$i][1], Array ("MEFS_APPARTENANCE")) ;
     $ok = 0 ;
     For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++)
      {
       $tableau3 = extraction ($tableau2 [$j][1], Array ("MEF_APPARTENANCE")) ;
       For ($k = 1 ; $k <= $tableau3 [0][0] ; $k++)
        {
         // Recuperation du CODE
         $code = attribut ("CODE", $tableau3 [$k][0]) ;
         $tableau4 = extraction ($tableau3 [$k][1], Array ("EFFECTIF_PREVU")) ;
         $tableau5 = extraction ($tableau3 [$k][1], Array ("EFFECTIF_CALCULE")) ;
         If ($ok == 1) { $requete_insertion .= "," ; }
         $requete_insertion .= "('','".$code_division."','".$code."','".Str_Replace ("'", "\'", $tableau4 [1][1])."','".Str_Replace ("'", "\'", $tableau5 [1][1])."')" ;
         $ok = 1 ;
        }
      }
     If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; }
     
     // Traitement SERVICES
     $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_SERVICES_DIVISIONS VALUES " ;
     $tableau2 = extraction ($tableau [$i][1], Array ("SERVICES")) ;
     $ok = 0 ;
     For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++)
      {
       $tableau3 = extraction ($tableau2 [$j][1], Array ("SERVICE")) ;
       For ($k = 1 ; $k <= $tableau3 [0][0] ; $k++)
        {
         // Recuperation du CODE MATIERE
         $code_matiere = attribut ("CODE_MATIERE", $tableau3 [$k][0]) ;
         // Recuperation du CODE MOD COURS
         $code_mod_cours = attribut ("CODE_MOD_COURS", $tableau3 [$k][0]) ;
         $tableau4 = extraction ($tableau3 [$k][1], Array ("HEURES_STRUCTURE")) ;
         $tableau5 = extraction ($tableau3 [$k][1], Array ("CO_ENS")) ;
         $tableau6 = extraction ($tableau3 [$k][1], Array ("ENSEIGNANTS")) ;
         If ($tableau6 [0][0] > 0)
          {
           For ($l = 1 ; $l <= $tableau6 [0][0] ; $l++)
            {
             $tableau7 = extraction ($tableau6 [$l][1], Array ("ENSEIGNANT")) ;
             For ($m = 1 ; $m <= $tableau7 [0][0] ; $m++)
              {
               // Recuperation du ID
               $id_enseignant = attribut ("ID", $tableau7 [$m][0]) ;
               // Recuperation du TYPE
               $type_enseignant = attribut ("TYPE", $tableau7 [$m][0]) ;
               $tableau8 = extraction ($tableau7 [$m][1], Array ("HEURES_AGENT")) ;
               If ($ok == 1) { $requete_insertion .= "," ; }
               $requete_insertion .= "('','".$code_division."','".$code_matiere."','".$code_mod_cours."','".Str_Replace ("'", "\'", $tableau4 [1][1])."'," ;
               $requete_insertion .= "'".Str_Replace ("'", "\'", $tableau5 [1][1])."','".$id_enseignant."','".$type_enseignant."','".Str_Replace ("'", "\'", $tableau8 [1][1])."','0')" ;
               $ok = 1 ;
              }
            }
          }
         Else
          {
           If ($ok == 1) { $requete_insertion .= "," ; }
           $requete_insertion .= "('','".$code_division."','".$code_matiere."','".$code_mod_cours."','".Str_Replace ("'", "\'", $tableau4 [1][1])."','".Str_Replace ("'", "\'", $tableau5 [1][1])."','','','','0')" ;
           $ok = 1 ;
          }
        }
      }
     If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; }
    }
  
   // Gestion des groupes
   // GROUPES
   $recursif = 0 ;
   // Traitement DIVISIONS APPARTENANCE GROUPES
   $table [0]++ ;
   $table [$table [0]] = $sql_sconet."_".$entete."_DIVISIONS_APPARTENANCE_GROUPES" ;
   $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_DIVISIONS_APPARTENANCE_GROUPES" ;
   $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_DIVISIONS_APPARTENANCE_GROUPES (ID_DIVISIONS_APPARTENANCE_GROUPES ".$type_champ_auto."," ;
   $requete_creation .= "CODE_GROUPE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "CODE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "EFFECTIF_PREVU ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "EFFECTIF_CALCULE ".$type_donnees." ".$attribut_donnees.")" ;
   //echo "Cr&eacute;ation de la table <b>".$sql_sconet."_".$entete."_DIVISIONS_APPARTENANCE_GROUPES</b><br>" ;
   $ok = SQL_commande ($requete_destruction, $id_sql) ;
   $ok = SQL_commande ($requete_creation, $id_sql) ;
   // Traitement MEF APPARTENANCE GROUPES
   $table [0]++ ;
   $table [$table [0]] = $sql_sconet."_".$entete."_MEFS_APPARTENANCE_GROUPES" ;
   $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_GROUPES" ;
   $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_GROUPES (ID_MEFS_APPARTENANCE_GROUPES ".$type_champ_auto."," ;
   $requete_creation .= "CODE_GROUPE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "CODE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "EFFECTIF_PREVU ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "EFFECTIF_CALCULE ".$type_donnees." ".$attribut_donnees.")" ;
   //echo "Cr&eacute;ation de la table <b>".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_GROUPES</b><br>" ;
   $ok = SQL_commande ($requete_destruction, $id_sql) ;
   $ok = SQL_commande ($requete_creation, $id_sql) ;
   // Traitement SERVICES GROUPES
   $table [0]++ ;
   $table [$table [0]] = $sql_sconet."_".$entete."_SERVICES_GROUPES" ;
   $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_SERVICES_GROUPES" ;
   $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_SERVICES_GROUPES (ID_SERVICES_GROUPES ".$type_champ_auto."," ;
   $requete_creation .= "CODE_GROUPE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "CODE_MATIERE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "CODE_MODS_COURS ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "HEURES_STRUCTURE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "CO_ENS ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "ENSEIGNANT_ID ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "ENSEIGNANT_TYPE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "HEURES_AGENT ".$type_donnees." ".$attribut_donnees.")" ;
   //echo "Cr&eacute;ation de la table <b>".$sql_sconet."_".$entete."_SERVICES_GROUPES</b><br>" ;
   $ok = SQL_commande ($requete_destruction, $id_sql) ;
   $ok = SQL_commande ($requete_creation, $id_sql) ;
   
   $tableau = extraction ($chaine, Array ("STS_EDT","DONNEES","GROUPES","GROUPE")) ;
   For ($i = 1 ; $i <= $tableau [0][0] ; $i++)
    {
     // Recuperation du CODE GROUPE
     $code_groupe = attribut ("CODE", $tableau [$i][0]) ;
     
     // Traitement DIVISIONS APPARTENANCE GROUPES
     $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_DIVISIONS_APPARTENANCE_GROUPES VALUES " ;
     $tableau2 = extraction ($tableau [$i][1], Array ("DIVISIONS_APPARTENANCE")) ;
     $ok = 0 ;
     For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++)
      {
       $tableau3 = extraction ($tableau2 [$j][1], Array ("DIVISION_APPARTENANCE")) ;
       For ($k = 1 ; $k <= $tableau3 [0][0] ; $k++)
        {
         // Recuperation du CODE
         $code = attribut ("CODE", $tableau3 [$k][0]) ;
         $tableau4 = extraction ($tableau3 [$k][1], Array ("EFFECTIF_PREVU")) ;
         $tableau5 = extraction ($tableau3 [$k][1], Array ("EFFECTIF_CALCULE")) ;
         If ($ok == 1) { $requete_insertion .= "," ; }
         $requete_insertion .= "('','".$code_groupe."','".$code."','".Str_Replace ("'", "\'", $tableau4 [1][1])."','".Str_Replace ("'", "\'", $tableau5 [1][1])."')" ;
         $ok = 1 ;
        }
      }
     If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; }
    
     // Traitement MEF APPARTENANCE GROUPES
     $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_GROUPES VALUES " ;
     $tableau2 = extraction ($tableau [$i][1], Array ("MEFS_APPARTENANCE")) ;
     $ok = 0 ;
     For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++)
      {
       $tableau3 = extraction ($tableau2 [$j][1], Array ("MEF_APPARTENANCE")) ;
       For ($k = 1 ; $k <= $tableau3 [0][0] ; $k++)
        {
         // Recuperation du CODE
         $code = attribut ("CODE", $tableau3 [$k][0]) ;
         $tableau4 = extraction ($tableau3 [$k][1], Array ("EFFECTIF_PREVU")) ;
         $tableau5 = extraction ($tableau3 [$k][1], Array ("EFFECTIF_CALCULE")) ;
         If ($ok == 1) { $requete_insertion .= "," ; }
         $requete_insertion .= "('','".$code_groupe."','".$code."','".Str_Replace ("'", "\'", $tableau4 [1][1])."','".Str_Replace ("'", "\'", $tableau5 [1][1])."')" ;
         $ok = 1 ;
        }
      }
     If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; }
    
     // Traitement SERVICES GROUPES
     $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_SERVICES_GROUPES VALUES " ;
     $tableau2 = extraction ($tableau [$i][1], Array ("SERVICES")) ;
     $ok = 0 ;
     For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++)
      {
       $tableau3 = extraction ($tableau2 [$j][1], Array ("SERVICE")) ;
       For ($k = 1 ; $k <= $tableau3 [0][0] ; $k++)
        {
         // Recuperation du CODE MATIERE
         $code_matiere = attribut ("CODE_MATIERE", $tableau3 [$k][0]) ;
         // Recuperation du CODE MOD COURS
         $code_mod_cours = attribut ("CODE_MOD_COURS", $tableau3 [$k][0]) ;
         $tableau4 = extraction ($tableau3 [$k][1], Array ("HEURES_STRUCTURE")) ;
         $tableau5 = extraction ($tableau3 [$k][1], Array ("CO_ENS")) ;
         $tableau6 = extraction ($tableau3 [$k][1], Array ("ENSEIGNANTS")) ;
         If ($tableau6 [0][0] > 0)
          {
           For ($l = 1 ; $l <= $tableau6 [0][0] ; $l++)
            {
             $tableau7 = extraction ($tableau6 [$l][1], Array ("ENSEIGNANT")) ;
             For ($m = 1 ; $m <= $tableau7 [0][0] ; $m++)
              {
               // Recuperation du ID
               $id_enseignant = attribut ("ID", $tableau7 [$m][0]) ;
               // Recuperation du TYPE
               $type_enseignant = attribut ("TYPE", $tableau7 [$m][0]) ;
               $tableau8 = extraction ($tableau7 [$m][1], Array ("HEURES_AGENT")) ;
               If ($ok == 1) { $requete_insertion .= "," ; }
               $requete_insertion .= "('','".$code_groupe."','".$code_matiere."','".$code_mod_cours."','".Str_Replace ("'", "\'", $tableau4 [1][1])."'," ;
               $requete_insertion .= "'".Str_Replace ("'", "\'", $tableau5 [1][1])."','".$id_enseignant."','".$type_enseignant."','".Str_Replace ("'", "\'", $tableau8 [1][1])."')" ;
               $ok = 1 ;
              }
            }
          }
         Else
          {
           If ($ok == 1) { $requete_insertion .= "," ; }
           $requete_insertion .= "('','".$code_groupe."','".$code_matiere."','".$code_mod_cours."','".Str_Replace ("'", "\'", $tableau4 [1][1])."','".Str_Replace ("'", "\'", $tableau5 [1][1])."','','','')" ;
           $ok = 1 ;
          }
        }
      }
      If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; }
    }
  }
 
 /**
 * Importation de la structure MEF uniquement
 * @param string $chaine Chaine a extraire
 * @param string $entete Entete du nom des tables a creer
 */
 Function importation_recursive_structure_mef ($chaine, $entete)
  {
   Global $id_sql, $table, $sql_sconet, $type_champ_auto, $type_donnees, $attribut_donnees ;
          
   // Gestion des divisions
   // DIVISIONS
   $recursif = 0 ;
   // Traitement MEF APPARTENANCE DIVISIONS
   $table [0]++ ;
   $table [$table [0]] = $sql_sconet."_".$entete."_MEFS_APPARTENANCE_DIVISIONS" ;
   $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_DIVISIONS" ;
   $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_DIVISIONS (ID_MEFS_APPARTENANCE_DIVISIONS ".$type_champ_auto."," ;
   $requete_creation .= "CODE_DIVISION ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "CODE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "EFFECTIF_PREVU ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "EFFECTIF_CALCULE ".$type_donnees." ".$attribut_donnees.")" ;
   //echo "Cr&eacute;ation de la table <b>".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_DIVISIONS</b><br>" ;
   $ok = SQL_commande ($requete_destruction, $id_sql) ;
   $ok = SQL_commande ($requete_creation, $id_sql) ;
   
   $tableau = extraction ($chaine, Array ("STS_EDT","DONNEES","DIVISIONS","DIVISION")) ;
   For ($i = 1 ; $i <= $tableau [0][0] ; $i++)
    {
     // Recuperation du CODE DIVISION
     $code_division = attribut ("CODE", $tableau [$i][0]) ;
     
     // Traitement MEF APPARTENANCE
     $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_DIVISIONS VALUES " ;
     $tableau2 = extraction ($tableau [$i][1], Array ("MEFS_APPARTENANCE")) ;
     $ok = 0 ;
     For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++)
      {
       $tableau3 = extraction ($tableau2 [$j][1], Array ("MEF_APPARTENANCE")) ;
       For ($k = 1 ; $k <= $tableau3 [0][0] ; $k++)
        {
         // Recuperation du CODE
         $code = attribut ("CODE", $tableau3 [$k][0]) ;
         $tableau4 = extraction ($tableau3 [$k][1], Array ("EFFECTIF_PREVU")) ;
         $tableau5 = extraction ($tableau3 [$k][1], Array ("EFFECTIF_CALCULE")) ;
         If ($ok == 1) { $requete_insertion .= "," ; }
         $requete_insertion .= "('','".$code_division."','".$code."','".Str_Replace ("'", "\'", $tableau4 [1][1])."','".Str_Replace ("'", "\'", $tableau5 [1][1])."')" ;
         $ok = 1 ;
        }
      }
     If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; }
    }
  
   // Gestion des groupes
   // GROUPES
   $recursif = 0 ;
   // Traitement MEF APPARTENANCE GROUPES
   $table [0]++ ;
   $table [$table [0]] = $sql_sconet."_".$entete."_MEFS_APPARTENANCE_GROUPES" ;
   $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_GROUPES" ;
   $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_GROUPES (ID_MEFS_APPARTENANCE_GROUPES ".$type_champ_auto."," ;
   $requete_creation .= "CODE_GROUPE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "CODE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "EFFECTIF_PREVU ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "EFFECTIF_CALCULE ".$type_donnees." ".$attribut_donnees.")" ;
   //echo "Cr&eacute;ation de la table <b>".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_GROUPES</b><br>" ;
   $ok = SQL_commande ($requete_destruction, $id_sql) ;
   $ok = SQL_commande ($requete_creation, $id_sql) ;
   
   $tableau = extraction ($chaine, Array ("STS_EDT","DONNEES","GROUPES","GROUPE")) ;
   For ($i = 1 ; $i <= $tableau [0][0] ; $i++)
    {
     // Recuperation du CODE GROUPE
     $code_groupe = attribut ("CODE", $tableau [$i][0]) ;
     
     // Traitement MEF APPARTENANCE GROUPES
     $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_MEFS_APPARTENANCE_GROUPES VALUES " ;
     $tableau2 = extraction ($tableau [$i][1], Array ("MEFS_APPARTENANCE")) ;
     $ok = 0 ;
     For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++)
      {
       $tableau3 = extraction ($tableau2 [$j][1], Array ("MEF_APPARTENANCE")) ;
       For ($k = 1 ; $k <= $tableau3 [0][0] ; $k++)
        {
         // Recuperation du CODE
         $code = attribut ("CODE", $tableau3 [$k][0]) ;
         $tableau4 = extraction ($tableau3 [$k][1], Array ("EFFECTIF_PREVU")) ;
         $tableau5 = extraction ($tableau3 [$k][1], Array ("EFFECTIF_CALCULE")) ;
         If ($ok == 1) { $requete_insertion .= "," ; }
         $requete_insertion .= "('','".$code_groupe."','".$code."','".Str_Replace ("'", "\'", $tableau4 [1][1])."','".Str_Replace ("'", "\'", $tableau5 [1][1])."')" ;
         $ok = 1 ;
        }
      }
     If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; }
    }
  }
 
 /**
 * Importation des eleves en recursif
 * @param string $chaine Chaine a extraire
 * @param string $entete Entete du nom des tables a creer
 */
 Function importation_recursive_eleves ($chaine, $entete)
  {
   Global $id_sql, $table, $sql_sconet, $type_champ_auto, $type_donnees, $attribut_donnees ;
   
   // Gestion des individus
   // INDIVIDUS
   $recursif = 0 ;
   // Traitement Scolarite an dernier
   $table [0]++ ;
   $table [$table [0]] = $sql_sconet."_".$entete."_SCOLARITE_AN_DERNIER" ;
   $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_SCOLARITE_AN_DERNIER" ;
   $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_SCOLARITE_AN_DERNIER (ID_SCOLARITE_AN_DERNIER ".$type_champ_auto."," ;
   $requete_creation .= "ELEVE_ID ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "ELENOET ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "CODE_MEF ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "CODE_STRUCTURE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "CODE_RNE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "CODE_NATURE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "SIGLE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "DENOM_PRINC ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "DENOM_COMPL ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "LIGNE1_ADRESSE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "LIGNE2_ADRESSE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "LIGNE3_ADRESSE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "LIGNE4_ADRESSE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "BOITE_POSTALE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "COMMUNE_ETRANGERE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "MEL ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "TELEPHONE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "CODE_COMMUNE_INSEE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "LL_COMMUNE_INSEE ".$type_donnees." ".$attribut_donnees.")" ;
   //echo "Cr&eacute;ation de la table <b>".$sql_sconet."_".$entete."_SCOLARITE_AN_DERNIER</b><br>" ;
   $ok = SQL_commande ($requete_destruction, $id_sql) ;
   $ok = SQL_commande ($requete_creation, $id_sql) ;
   
   $tableau = extraction ($chaine, Array ("BEE_ELEVES","DONNEES","ELEVES","ELEVE")) ;
   For ($i = 1 ; $i <= $tableau [0][0] ; $i++)
    {
     $ok = 0 ;
     // Recuperation du ELEVE_ID et ELENOET
     $eleve_id = attribut ("ELEVE_ID", $tableau [$i][0]) ;
     $elenoet = attribut ("ELENOET", $tableau [$i][0]) ;
                 
     // Traitement DISCIPLINES
     $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_SCOLARITE_AN_DERNIER VALUES " ;
     $tableau2 = extraction ($tableau [$i][1], Array ("SCOLARITE_AN_DERNIER")) ;
     For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++)
      {
       // Recuperation des CODES
       $code_mef = extraction ($tableau2 [$j][1], Array ("CODE_MEF")) ;
       $code_structure = extraction ($tableau2 [$j][1], Array ("CODE_STRUCTURE")) ;
       $code_rne = extraction ($tableau2 [$j][1], Array ("CODE_RNE")) ;
       $code_nature = extraction ($tableau2 [$j][1], Array ("CODE_NATURE")) ;
       $sigle = extraction ($tableau2 [$j][1], Array ("SIGLE")) ;
       $denom_princ = extraction ($tableau2 [$j][1], Array ("DENOM_PRINC")) ;
       $denom_compl = extraction ($tableau2 [$j][1], Array ("DENOM_COMPL")) ;
       $ligne1_adresse = extraction ($tableau2 [$j][1], Array ("LIGNE1_ADRESSE")) ;
       $ligne2_adresse = extraction ($tableau2 [$j][1], Array ("LIGNE2_ADRESSE")) ;
       $ligne3_adresse = extraction ($tableau2 [$j][1], Array ("LIGNE3_ADRESSE")) ;
       $ligne4_adresse = extraction ($tableau2 [$j][1], Array ("LIGNE4_ADRESSE")) ;
       $boite_postale = extraction ($tableau2 [$j][1], Array ("BOITE_POSTALE")) ;
       $commune_etrangere = extraction ($tableau2 [$j][1], Array ("COMMUNE_ETRANGERE")) ;
       $mel = extraction ($tableau2 [$j][1], Array ("MEL")) ;
       $telephone = extraction ($tableau2 [$j][1], Array ("TELEPHONE")) ;
       $code_commune_insee = extraction ($tableau2 [$j][1], Array ("CODE_COMMUNE_INSEE")) ;
       $ll_commune_insee = extraction ($tableau2 [$j][1], Array ("LL_COMMUNE_INSEE")) ;
       If ($ok == 1) { $requete_insertion .= "," ; }
       $requete_insertion .= "('','".$eleve_id."','".$elenoet."','".Str_Replace ("'","\'",$code_mef [1][1])."'," ;
       $requete_insertion .= "'".Str_Replace ("'", "\'", $code_structure [1][1])."'," ;
       $requete_insertion .= "'".Str_Replace ("'", "\'", $code_rne [1][1])."'," ;
       $requete_insertion .= "'".Str_Replace ("'", "\'", $code_nature [1][1])."'," ;
       $requete_insertion .= "'".Str_Replace ("'", "\'", $sigle [1][1])."'," ;
       $requete_insertion .= "'".Str_Replace ("'", "\'", $denom_princ [1][1])."'," ;
       $requete_insertion .= "'".Str_Replace ("'", "\'", $denom_compl [1][1])."'," ;
       $requete_insertion .= "'".Str_Replace ("'", "\'", $ligne1_adresse [1][1])."'," ;
       $requete_insertion .= "'".Str_Replace ("'", "\'", $ligne2_adresse [1][1])."'," ;
       $requete_insertion .= "'".Str_Replace ("'", "\'", $ligne3_adresse [1][1])."'," ;
       $requete_insertion .= "'".Str_Replace ("'", "\'", $ligne4_adresse [1][1])."'," ;
       $requete_insertion .= "'".Str_Replace ("'", "\'", $boite_postale [1][1])."'," ;
       $requete_insertion .= "'".Str_Replace ("'", "\'", $commune_etrangere [1][1])."'," ;
       $requete_insertion .= "'".Str_Replace ("'", "\'", $mel [1][1])."'," ;
       $requete_insertion .= "'".Str_Replace ("'", "\'", $telephone [1][1])."'," ;
       $requete_insertion .= "'".Str_Replace ("'", "\'", $code_commune_insee [1][1])."'," ;
       $requete_insertion .= "'".Str_Replace ("'", "\'", $ll_commune_insee [1][1])."'" ;
       $requete_insertion .= ")" ;
       $ok = 1 ;
      }
     If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; }
          
     // Traitement PROFS_PRINC
     $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_PROFS_PRINC VALUES " ;
     $tableau2 = extraction ($tableau [$i][1], Array ("PROFS_PRINC")) ;
     $ok = 0 ;
     For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++)
      {
       $tableau3 = extraction ($tableau2 [$j][1], Array ("PROF_PRINC")) ;
       For ($k = 1 ; $k <= $tableau3 [0][0] ; $k++)
        {
         $tableau4 = extraction ($tableau3 [$k][1], Array ("CODE_STRUCTURE")) ;
         $tableau5 = extraction ($tableau3 [$k][1], Array ("DATE_DEBUT")) ;
         $tableau6 = extraction ($tableau3 [$k][1], Array ("DATE_FIN")) ;
         If ($ok == 1) { $requete_insertion .= "," ; }
         $requete_insertion .= "('','".$id_individu."','".Str_Replace ("'", "\'", $tableau4 [1][1])."'," ;
         $requete_insertion .= "'".Str_Replace ("'", "\'", $tableau5 [1][1])."','".Str_Replace ("'", "\'", $tableau6 [1][1])."')" ;
         $ok = 1 ;
        }
      }
     If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; }
    }
   
   // Traitement Structures
   $table [0]++ ;
   $table [$table [0]] = $sql_sconet."_".$entete."_STRUCTURES" ;
   $requete_destruction = "DROP TABLE ".$sql_sconet."_".$entete."_STRUCTURES" ;
   $requete_creation = "CREATE TABLE ".$sql_sconet."_".$entete."_STRUCTURES (ID_STRUCTURE ".$type_champ_auto."," ;
   $requete_creation .= "ELEVE_ID ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "ELENOET ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "CODE_STRUCTURE ".$type_donnees." ".$attribut_donnees."," ;
   $requete_creation .= "TYPE_STRUCTURE ".$type_donnees." ".$attribut_donnees.")" ;
   //echo "Cr&eacute;ation de la table <b>".$table [$table [0]]."</b><br>" ;
   $ok = SQL_commande ($requete_destruction, $id_sql) ;
   $ok = SQL_commande ($requete_creation, $id_sql) ;
   
   $tableau = extraction ($chaine, Array ("BEE_ELEVES","DONNEES","STRUCTURES","STRUCTURES_ELEVE")) ;
   For ($i = 1 ; $i <= $tableau [0][0] ; $i++)
    {
     $ok = 0 ;
     // Recuperation du ELEVE_ID et ELENOET
     $eleve_id = attribut ("ELEVE_ID", $tableau [$i][0]) ;
     $elenoet = attribut ("ELENOET", $tableau [$i][0]) ;
                 
     // Traitement DISCIPLINES
     $requete_insertion = "INSERT INTO ".$sql_sconet."_".$entete."_STRUCTURES VALUES " ;
     $tableau2 = extraction ($tableau [$i][1], Array ("STRUCTURE")) ;
     For ($j = 1 ; $j <= $tableau2 [0][0] ; $j++)
      {
       // Recuperation des CODES
       $code_structure = extraction ($tableau2 [$j][1], Array ("CODE_STRUCTURE")) ;
       $type_structure = extraction ($tableau2 [$j][1], Array ("TYPE_STRUCTURE")) ;
       If ($ok == 1) { $requete_insertion .= "," ; }
       $requete_insertion .= "('','".$eleve_id."','".$elenoet."'," ;
       $requete_insertion .= "'".Str_Replace ("'", "\'", $code_structure [1][1])."'," ;
       $requete_insertion .= "'".Str_Replace ("'", "\'", $type_structure [1][1])."'" ;
       $requete_insertion .= ")" ;
       $ok = 1 ;
      }
     If ($ok == 1) { $ok_requete = SQL_commande ($requete_insertion, $id_sql) ; }
    }
  }
 
 /**
 * Fonction d'importation des regimes non existants
 * @param int $code Code du regime sconet
 * @param string $nom_court Libelle court sconet
 * @param string $nom_long Libelle long sconet
 * @param int $millesime Millesime
 * @return string Requete d'insertion
 */
 Function insertion_regimes ($code, $nom_court, $nom_long, $millesime)
  {
   Global $nbr_regimes, $id_sql ;
   $req = "" ;
   $r = SQL_commande ("SELECT * FROM types_regimes WHERE nom_court='".$nom_court."' LIMIT 1", $id_sql) ;
   //echo "SELECT * FROM types_regimes WHERE nom_court='".$nom_court."' LIMIT 1<br>" ;
   If (SQL_nbr_lignes ($r) == 0)
    {
     If ($nbr_regimes > 0) { $req .= "," ; }
     $req .= "('".$code."','".$nom_court."','".$nom_long."','".$millesime."')" ;
     $nbr_regimes++ ;
    }
   Return $req ;
  }
 
 /**
 * Insertion/Mise a jour de la structure
 * @param string $entete Entete du nom des tables
 * @return mixed Etat de l'insertion/mise a jour -1:Retour en arriere millesime (erreur) ou [0]=etab, [1]=regime, [2]=profs, [3]=disc_division, [4]=disc_groupe, [5]=classe
 */
 Function ins_maj_structure ($entete)
  {
   Global $id_sql, $sql_sconet, $note_par_defaut ;
   Global $droit_direction, $droit_secretariat, $droit_cpe, $droit_surveillant, $droit_trombinoscope, $droit_prof ;
   If ($note_par_defaut <= 0) { $note_par_defaut = 20 ; }
   
   // Variables de comptage
   $ok_etab = 0 ;
   $ok_regime = 0 ;
   $ok_profs = 0 ;
   $ok_disc_division = $ok_disc_groupe = 0 ;
   $ok_classe = 0 ;

   // Annee scolaire
   $r0 = SQL_commande ("SELECT ANNEE FROM ".$sql_sconet."_".$entete."_ANNEE_SCOLAIRE LIMIT 1", $id_sql) ;
   If (SQL_nbr_lignes ($r0) == 1) { $l0 = SQL_ligne_suivante ($r0) ; } Else { $l0 [0] = Date ("Y") ; }
   $millesime = $l0 [0] ;
   $l0 ["millesime"] = millesime (0) ;
   If ($l0 ["millesime"] < $millesime)
    {
     // Changement de millesime
     $requete = "INSERT INTO gestion (nombre_chiffres,millesime,nombre_groupes,enregistrement_cnil,dico,page_login) VALUES " ;
     $requete .= "('".$l0 ["nombre_chiffres"]."','".$millesime."','".$l0 ["nombre_groupes"]."','".$l0 ["enregistrement_cnil"]."','".$l0 ["dico"]."','".$l0 ["page_login"]."')" ;
     $r0 = SQL_commande ($requete, $id_sql) ;
     
     // Recopie des utilisateurs direction, secretariat, cpe et trombinoscope sur le nouveau millesime
     $requete  = "SELECT * FROM utilisateurs WHERE (droits='".$droit_direction."' OR droits='".$droit_secretariat."' " ;
     $requete .= "OR droits='".$droit_cpe."' OR droits='".$droit_surveillant."' OR droits='".$droit_trombinoscope."') AND millesime='".$l0 ["millesime"]."'" ;
     $r0 = SQL_commande ($requete, $id_sql) ;
     $n0 = SQL_nbr_lignes ($r0) ;
     $requete = "INSERT INTO utilisateurs (nom,prenom,login,passe,droits,civilite,theme,numen,photo,millesime) VALUES" ;
     For ($i = 0 ; $i < $n0 ; $i++)
      {
       $l0 = SQL_tableau_associatif ($r0, "") ;
       If ($i > 0) { $requete .= "," ; }
       $requete .= "('".$l0 ["nom"]."','".$l0 ["prenom"]."','".$l0 ["login"]."','".$l0 ["passe"]."','".$l0 ["droits"]."','".$l0 ["civilite"]."'," ;
       $requete .= "'".$l0 ["theme"]."','".$l0 ["numen"]."','".$l0 ["photo"]."','".$millesime."')" ;
      }
     $r0 = SQL_commande ($requete, $id_sql) ;
    }
   ElseIf ($l0 ["millesime"] > $millesime)
    {
     // On revient en arriere ???
     Return -1 ;
    }
   
   // Remplissage de la table etablissements
   $r0 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_UAJ LIMIT 1", $id_sql) ;
   $ok_maj = 0 ;
   If (SQL_nbr_lignes ($r0) == 1)
    {
     $l0 = SQL_tableau_associatif ($r0, "") ;
     $resultat = SQL_commande ("SELECT * FROM etablissements WHERE numero='".$l0 ["CODE"]."' ORDER BY millesime DESC LIMIT 1", $id_sql) ;
     //$r = SQL_commande ("SELECT id_signature FROM signatures ORDER BY id_signature", $id_sql) ;
     //$s = SQL_ligne_suivante ($r) ;
     If (SQL_nbr_lignes ($resultat) > 0)
      {
       $ligne = SQL_tableau_associatif ($resultat, "") ;
       If ($ligne ["millesime"] == $millesime) { $ok_maj = 1 ; } Else { $ok_maj = -1 ; }
      }
    }
   Else
    {
     UnSet ($ligne) ;
    }
   If ($ok_maj <= 0)
    {
     $requete = "INSERT INTO etablissements (nom,adresse,cp,ville,telephone,fax,numero,mel,academie,cahier_textes,debut_cahier_textes,fin_cahier_textes," ;
     $requete .= "heure_debut,heure_fin,heure_pas,cahier_public,visu_devoirs,taille_fichier,taille_espace,rep_stockage," ;
     $requete .= "moyenne,nombre_chiffres,max,aff_evolution,seuil_bas,seuil_haut," ;
     $requete .= "aff_nombre_notes,entete_bulletins,imprimer_logo_bulletins,logo_bulletins,entete_releves,imprimer_logo_releves,logo_releves," ;
     $requete .= "coefficient,examen_blanc,aff_moy_nc,aff_moy_c,aff_nc,aff_c,bulletin_cpe,signature,millesime) VALUES " ;
     If (IsSet ($l0))
      {
       $requete .= "('".filtrage ($l0 ["DENOM_PRINC"])." ".filtrage ($l0 ["DENOM_COMPL"])."','".filtrage ($l0 ["ADRESSE"])."','".$l0 ["CODE_POSTAL"]."','".filtrage ($l0 ["COMMUNE"])."'," ;
       $requete .= "'".$l0 ["TELEPHONE"]."','','".$l0 ["CODE"]."','','".filtrage ($l0 ["ACADEMIE_LIBELLE"])."'," ;
       $ok_etab = 1 ;
      }
     Else
      {
       $requete .= "('','','','','','','00000000','',''," ;
       $l0 ["CODE"] = "00000000" ;
       $ok_etab = 0 ;
      }
     If ($ok_maj == 0)
      {
       $requete .= "1,'','','08:00:00','17:30:00','30',0,0,'100','5000','documents/'," ;
       $requete .= "0,1,'".$note_par_defaut."',1,'0.5','0.5'," ;
       $requete .= "0,0,0,'logo_bulletin',0,0,'logo_releve'," ;
       $requete .= "1,1,0,0,0,0,0,'".$s [0]."','".$millesime."')" ;
      }
     ElseIf (IsSet ($ligne))
      {
       If ($ligne ["max"] <= 0) { $ligne ["max"] = 20 ; }
       $requete .= "'".$ligne ["cahier_textes"]."','".$ligne ["debut_cahier_textes"]."','".$ligne ["fin_cahier_textes"]."'," ;
       $requete .= "'".$ligne ["heure_debut"]."','".$ligne ["heure_fin"]."','".$ligne ["heure_pas"]."','".$ligne ["cahier_public"]."'," ;
       $requete .= "'".$ligne ["visu_devoirs"]."','".$ligne ["taille_fichier"]."','".$ligne ["taille_espace"]."','".$ligne ["rep_stockage"]."'," ;
       $requete .= "'".$ligne ["moyenne"]."','".$ligne ["nombre_chiffres"]."','".$ligne ["max"]."','".$ligne ["aff_evolution"]."'," ;
       $requete .= "'".$ligne ["seuil_bas"]."','".$ligne ["seuil_haut"]."'," ;
       $requete .= "'".$ligne ["aff_nombre_notes"]."','".$ligne ["entete_bulletins"]."','".$ligne ["imprimer_logo_bulletins"]."'," ;
       $requete .= "'".$ligne ["logo_bulletins"]."','".$ligne ["entete_releves"]."','".$ligne ["imprimer_logo_releves"]."','".$ligne ["logo_releves"]."'," ;
       $requete .= "'".$ligne ["coefficient"]."','".$ligne ["examen_blanc"]."','".$ligne ["aff_moy_nc"]."','".$ligne ["aff_moy_c"]."','".$ligne ["aff_nc"]."','".$ligne ["aff_c"]."','".$ligne ["bulletin_cpe"]."'," ;
       $requete .= "'".$ligne ["signature"]."','".$millesime."')" ;
      }
    }
   Else
    {
     $requete = "UPDATE etablissements SET nom='".filtrage ($l0 ["DENOM_PRINC"])." ".filtrage ($l0 ["DENOM_COMPL"])."',adresse='".filtrage ($l0 ["ADRESSE"])."',cp='".$l0 ["CODE_POSTAL"]."'," ;
     $requete .= "ville='".filtrage ($l0 ["COMMUNE"])."',telephone='".$l0 ["TELEPHONE"]."',academie='".filtrage ($l0 ["ACADEMIE_LIBELLE"])."'" ;
     If ($ligne ["heure_debut"] == "") { $requete .= ",heure_debut='08:00:00',heure_fin='17:30:00',heure_pas='30'" ; }
     If ($ligne ["taille_fichier"] == 0) { $requete .= ",taille_fichier='100',taille_espace='5000',rep_stockage='documents/'" ; }
     If ($ligne ["max"] == 0) { $requete .= ",nombre_chiffres='1',max='".$note_par_defaut."'" ; }
     If ($ligne ["coefficient"] == 0) { $requete .= ",coefficient='1'" ; }
     If ($ligne ["seuil_bas"] == 0) { $requete .= ",seuil_bas='0.5',seuil_haut='0.5'" ; }
     If ($ligne ["logo_bulletins"] == "") { $requete .= ",logo_bulletins='logo_bulletin',logo_releves='logo_releve'" ; }
     If ($ligne ["signature"] == 0) { $requete .= ",signature='".$s [0]."'" ; }
     $requete .= " WHERE id_etablissement='".$ligne ["id_etablissement"]."' LIMIT 1" ;
     $ok_etab = 1 ;
    }
   $resultat = SQL_commande ($requete, $id_sql) ;
   $resultat = SQL_commande ("SELECT id_etablissement FROM etablissements WHERE numero='".$l0 ["CODE"]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ;
   $ligne = SQL_ligne_suivante ($resultat) ;
   $numero = $ligne [0] ;
   
   // Recherche des codes regimes et insertion $table [13]
   $resultat = SQL_commande ("SELECT * FROM types_regimes WHERE millesime='".$millesime."' LIMIT 1", $id_sql) ;
   $nbr = SQL_nbr_lignes ($resultat) ;
   If (($nbr == 0) Or ($nbr < 28))
    {
     $nbr_regimes = 0 ;
     $requete = "INSERT INTO types_regimes (code,nom_court,nom_long,millesime) VALUES " ;
     $requete .= insertion_regimes ("0","EXTERN","EXTERNE LIBRE",$millesime) ;
     $requete .= insertion_regimes ("0","EXT.","EXTERNE",$millesime) ;
     $requete .= insertion_regimes ("1","EX.SUR","EXTERNE SURVEILLE",$millesime) ;
     $requete .= insertion_regimes ("2","1/2 P.","1/2 PENSION",$millesime) ;
     $requete .= insertion_regimes ("2","DP DAN","DEMI-PENSIONNAIRE DANS L\'ETABLISSEMENT",$millesime) ;
     $requete .= insertion_regimes ("3","INTERN","INTERNE DANS L\'ETABLISSEMENT",$millesime) ;
     $requete .= insertion_regimes ("3","INT.","INTERNE",$millesime) ;
     $requete .= insertion_regimes ("4","INT.EX","INTERNE EXTERNE",$millesime) ;
     $requete .= insertion_regimes ("5","IN.HEB","INTERNE HEBERGE",$millesime) ;
     $requete .= insertion_regimes ("6","DP HOR","DEMI-PENSIONNAIRE HORS L\'ETABLISSEMENT",$millesime) ;
     $requete .= insertion_regimes ("7","1/2INT","1/2 INTERNE",$millesime) ;
     $requete .= insertion_regimes ("8","INT-WE","INTERNE WEEK-END",$millesime) ;
     $requete .= insertion_regimes ("21","DP DAN 1J","DEMI-PENSIONNAIRE DANS L\"ETABLISSEM 1J",$millesime) ;
     $requete .= insertion_regimes ("22","DP DAN 2J","DEMI-PENSIONNAIRE DANS L\"ETABLISSEM 2J",$millesime) ;
     $requete .= insertion_regimes ("23","DP DAN 3J","DEMI-PENSIONNAIRE DANS L\"ETABLISSEM 3J",$millesime) ;
     $requete .= insertion_regimes ("24","DP DAN 4J","DEMI-PENSIONNAIRE DANS L\"ETABLISSEM 4J",$millesime) ;
     $requete .= insertion_regimes ("25","DP DAN 5J","DEMI-PENSIONNAIRE DANS L\"ETABLISSEM 5J",$millesime) ;
     $requete .= insertion_regimes ("26","DP DAN 6J","DEMI-PENSIONNAIRE DANS L\"ETABLISSEM 6J",$millesime) ;
     $requete .= insertion_regimes ("29","AU TICKET","1/2 PENS. AU TICKET",$millesime) ;
     $requete .= insertion_regimes ("29","AU TIC","DEMI-PENSIONNAIRE AU TICKET",$millesime) ;
     $requete .= insertion_regimes ("31","INT 1J","INTERNE 1 JOUR",$millesime) ;
     $requete .= insertion_regimes ("32","INT 2J","INTERNE 2 JOURS",$millesime) ;
     $requete .= insertion_regimes ("33","INT 3J","INTERNE 3 JOURS",$millesime) ;
     $requete .= insertion_regimes ("34","INT 4J","INTERNE 4 JOURS",$millesime) ;
     $requete .= insertion_regimes ("35","INT 5J","INTERNE 5 JOURS",$millesime) ;
     $requete .= insertion_regimes ("36","INT 6J","INTERNE 6 JOURS",$millesime) ;
     $requete .= insertion_regimes ("38","1/2 IN","DEMI INTERNE",$millesime) ;
     $requete .= insertion_regimes ("39","INT WE","INTERNE WEEK END",$millesime) ;
     If ($nbr_regimes > 0) { $ok = SQL_commande ($requete, $id_sql) ; }
     $ok_regime = 1 ;
    }
   // Recherche des classes et profs principaux et insertion
   $resultats = SQL_commande ("SELECT CODE_DIVISION,LIBELLE_LONG FROM ".$sql_sconet."_".$entete."_DIVISIONS ORDER BY CODE_DIVISION,LIBELLE_LONG", $id_sql) ;
   $nbr = SQL_nbr_lignes ($resultats) ;
   If ($nbr > 0)
    {
     For ($i = 0 ; $i < $nbr ; $i++)
      {
       $ligne = SQL_ligne_suivante ($resultats) ;
       $r = SQL_commande ("SELECT * FROM classes WHERE nom_bref='".filtrage ($ligne [0])."' AND millesime='".$millesime."'", $id_sql) ;
       If (SQL_nbr_lignes ($r) == 0)
        {
         // Nouvelle classe
         $requete = "INSERT INTO classes (nom,nom_bref,numen_prof_princ,etablissement,signature,periode,num_periode,millesime) VALUES " ;
         $requete .= "('".filtrage ($ligne [1])."','".filtrage ($ligne [0])."','" ;
         $r = SQL_commande ("SELECT i.TYPE,i.ID FROM ".$sql_sconet."_".$entete."_PROFS_PRINC p, ".$sql_sconet."_".$entete."_INDIVIDUS i WHERE p.CODE_STRUCTURE='".$ligne [0]."' AND p.ID_INDIVIDU=i.ID LIMIT 1", $id_sql) ;
         If (SQL_nbr_lignes ($r) == 1)
          {
           $pp = SQL_ligne_suivante ($r) ;
           $requete .= $pp [0].$pp [1] ;
          }
         $r = SQL_commande ("SELECT id_type_periode FROM types_periode WHERE millesime='".$millesime."' ORDER BY nombre DESC LIMIT 1", $id_sql) ;
         If (SQL_nbr_lignes ($r) == 1)
          {
           $type_periode = SQL_ligne_suivante ($r) ;
          }
         Else
          {
           $r = SQL_commande ("INSERT INTO types_periode (nom_periode,nombre,millesime) VALUES ('trimestre','3','".$millesime."'),('semestre','2','".$millesime."')", $id_sql) ;
           $r = SQL_commande ("SELECT id_type_periode FROM types_periode WHERE millesime='".$millesime."' ORDER BY nombre DESC LIMIT 1", $id_sql) ;
           $type_periode = SQL_ligne_suivante ($r) ;
          }
         $requete .= "','".$numero."','1','".$type_periode [0]."','1','".$millesime."')" ;
        }
       Else
        {
         // MAJ
         $rr = SQL_tableau_associatif ($r, "") ;
         $requete = "UPDATE classes SET nom='".filtrage ($ligne [1])."',nom_bref='".filtrage ($ligne [0])."',numen_prof_princ='" ;
         $r = SQL_commande ("SELECT i.TYPE,i.ID FROM ".$sql_sconet."_".$entete."_PROFS_PRINC p,".$sql_sconet."_".$entete."_INDIVIDUS i WHERE p.CODE_STRUCTURE='".$ligne [0]."' AND p.ID_INDIVIDU=i.ID LIMIT 1", $id_sql) ;
         If (SQL_nbr_lignes ($r) == 1)
          {
           $pp = SQL_ligne_suivante ($r) ;
           $requete .= $pp [0].$pp [1] ;
          }
         $requete .= "',etablissement='".$numero."',signature='".$rr ["signature"]."',periode='".$rr ["periode"]."'," ;
         $requete .= "num_periode='".$rr ["num_periode"]."' WHERE id_classe='".$rr ["id_classe"]."' LIMIT 1" ;
        }
       $r = SQL_commande ($requete, $id_sql) ;
      }
     $ok_classe = 1 ;
    }
   // Recherche des profs et insertion
   $r1 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_INDIVIDUS WHERE (TYPE='epp' OR TYPE='local') AND (FONCTION='ENS' OR FONCTION='FIJ') ORDER BY NOM_USAGE,PRENOM,DATE_NAISSANCE", $id_sql) ;
   For ($i = 0 ; $i < SQL_nbr_lignes ($r1) ; $i++)
    {
     $l1 = SQL_tableau_associatif ($r1, "") ;
     Switch ($l1 ["CIVILITE"])
      {
        Case 1 : $civ = 2 ; Break ;
        Case 2 : $civ = 0 ; Break ;
        Case 3 : $civ = 1 ; Break ;
       Default : $civ = 0 ; Break ;
      }
     $r2 = SQL_commande ("SELECT * FROM utilisateurs WHERE numen='".$l1 ["TYPE"].$l1 ["ID"]."' AND droits='".$droit_prof."' AND millesime='".$millesime."'", $id_sql) ;
     If (SQL_nbr_lignes ($r2) == 0)
      {
       // Nouveau prof
       $requete = "INSERT INTO utilisateurs (nom,prenom,droits,civilite,theme,numen,millesime) VALUES " ;
       $requete .= "('".filtrage ($l1 ["NOM_USAGE"])."','".filtrage ($l1 ["PRENOM"])."','".$droit_prof."','".$civ."','1','".$l1 ["TYPE"].$l1 ["ID"]."','".$millesime."')" ;
       $ok_profs++ ;
      }
     Else
      {
       // MAJ avec nouveau prof
       $requete = "UPDATE utilisateurs SET nom='".filtrage ($l1 ["NOM_USAGE"])."',prenom='".filtrage ($l1 ["PRENOM"])."',droits='".$droit_prof."'," ;
       $requete .= "civilite='".$civ."',millesime='".$millesime."' WHERE numen='".$l1 ["TYPE"].$l1 ["ID"]."'" ;
       $ok_profs++ ;
      }
     $r2 = SQL_commande ($requete, $id_sql) ;
     // Recupere le nouvel id du professeur
     $r3 = SQL_commande ("SELECT id_utilisateur FROM utilisateurs WHERE numen='".$l1 ["TYPE"].$l1 ["ID"]."' AND droits='".$droit_prof."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ;
     $l3 = SQL_ligne_suivante ($r3) ;
         
     // Recherche disciplines DIVISION
     $r4 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_SERVICES_DIVISIONS WHERE ENSEIGNANT_ID='".$l1 ["ID"]."' ORDER BY CODE_DIVISION", $id_sql) ;
     //echo SQL_nbr_lignes ($r4)."+" ;
     If (SQL_nbr_lignes ($r4) > 0)
      {
       For ($j = 0 ; $j < SQL_nbr_lignes ($r4) ; $j++)
        {
         $ok_disc_division++ ;
         $l4 = SQL_tableau_associatif ($r4, "") ;
         $r24 = SQL_commande ("UPDATE ".$sql_sconet."_".$entete."_SERVICES_DIVISIONS SET OK=1 WHERE ID_SERVICES_DIVISIONS='".$l4 ["ID_SERVICES_DIVISIONS"]."' LIMIT 1", $id_sql) ;
         
         // Recupere le nouveau numero de la discipline
         $r5 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_MATIERES WHERE CODE='".filtrage ($l4 ["CODE_MATIERE"])."' LIMIT 1", $id_sql) ;
         $l5 = SQL_tableau_associatif ($r5, "") ;
           
         // La discipline est-elle deja enregistree ?
         $r6 = SQL_commande ("SELECT id_discipline FROM disciplines WHERE code='".filtrage ($l4 ["CODE_MATIERE"])."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ;
         If (SQL_nbr_lignes ($r6) == 0)
          {
           // NON ! donc on enregistre...
           $requete = "INSERT INTO disciplines (nom_long,nom_court,nom_bref,code,millesime) VALUES " ;
           $requete .= "('".filtrage ($l5 ["LIBELLE_LONG"])."','".filtrage ($l5 ["LIBELLE_COURT"])."','".filtrage ($l5 ["CODE_GESTION"])."','".filtrage ($l4 ["CODE_MATIERE"])."','".$millesime."')" ;
           $r7 = SQL_commande ($requete, $id_sql) ;
           $r6 = SQL_commande ("SELECT id_discipline FROM disciplines WHERE code='".filtrage ($l4 ["CODE_MATIERE"])."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ;
          }
         Else
          {
           // MAJ
           $l6 = SQL_tableau_associatif ($r6, "") ;
           $requete = "UPDATE disciplines SET nom_long='".filtrage ($l5 ["LIBELLE_LONG"])."',nom_court='".filtrage ($l5 ["LIBELLE_COURT"])."'," ;
           $requete .= "nom_bref='".filtrage ($l5 ["CODE_GESTION"])."',code='".filtrage ($l4 ["CODE_MATIERE"])."' WHERE id_discipline='".$l6 ["id_discipline"]."' LIMIT 1" ;
           $r7 = SQL_commande ($requete, $id_sql) ;
           $r6 = SQL_commande ("SELECT id_discipline FROM disciplines WHERE code='".filtrage ($l4 ["CODE_MATIERE"])."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ;
          }
         $l5 = SQL_ligne_suivante ($r6) ;
       
         // Definition service professeur
         $r7 = SQL_commande ("SELECT id_classe FROM classes WHERE nom_bref='".filtrage ($l4 ["CODE_DIVISION"])."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ;
         $l7 = SQL_ligne_suivante ($r7) ;
         // Recherche double service classe (BIS REPETITAS)
         // Recherche id services classe
         $requete = "SELECT id_service_classe FROM services_classe WHERE discipline='".filtrage ($l5 [0])."' AND code_disc='".filtrage ($l4 ["CODE_MATIERE"])."' " ;
         $requete .= "AND classe='".filtrage ($l7 [0])."' AND code_classe='".filtrage ($l4 ["CODE_DIVISION"])."' AND optionnelle='0' AND groupe='0' AND millesime='".$millesime."' LIMIT 1" ;
         $r11 = SQL_commande ($requete, $id_sql) ;
         If (SQL_nbr_lignes ($r11) == 0)
          {
	   // Pas de service classe -> Insertion
           $requete = "INSERT INTO services_classe (discipline,code_disc,classe,code_classe,optionnelle,groupe,millesime) VALUES " ;
           $requete .= "('".filtrage ($l5 [0])."','".filtrage ($l4 ["CODE_MATIERE"])."','".filtrage ($l7 [0])."','".filtrage ($l4 ["CODE_DIVISION"])."','0','0','".$millesime."')" ;
           $r12 = SQL_commande ($requete, $id_sql) ;
           // Recherche id services classe
           $requete = "SELECT id_service_classe FROM services_classe WHERE code_disc='".filtrage ($l4 ["CODE_MATIERE"])."' AND discipline='".filtrage ($l5 [0])."' " ;
           $requete .= "AND classe='".filtrage ($l7 [0])."' AND code_classe='".filtrage ($l4 ["CODE_DIVISION"])."' AND optionnelle='0' AND groupe='0' AND millesime='".$millesime."'" ;
           $r11 = SQL_commande ($requete, $id_sql) ;
          }
         // Id services classe
         For ($dr = 0 ; $dr < SQL_nbr_lignes ($r11) ; $dr++) { $l11 = SQL_ligne_suivante ($r11) ; }
  	 
         // Recherche double service prof
         $requete = "SELECT id_service_prof FROM services_prof WHERE professeur='".$l3 [0]."' AND numen_prof='".$l1 ["TYPE"].$l1 ["ID"]."' " ;
         $requete .= "AND discipline='".$l5 [0]."' AND code_disc='".filtrage ($l4 ["CODE_MATIERE"])."' AND classe='".filtrage ($l7 [0])."'" ;
         $requete .= "AND code_classe='".filtrage ($l4 ["CODE_DIVISION"])."' AND service_classe='".filtrage ($l11 [0])."' AND groupe_classe='0' AND millesime='".$millesime."' LIMIT 1" ;
         $r9 = SQL_commande ($requete, $id_sql) ;
         If (SQL_nbr_lignes ($r9) == 0)
          {
  	   // Pas de doubles -> on enregistre..
           $requete = "INSERT INTO services_prof (professeur,numen_prof,discipline,code_disc,classe,code_classe,service_classe,groupe_classe,coefficient,millesime) VALUES " ;
           $requete .= "('".$l3 [0]."','".$l1 ["TYPE"].$l1 ["ID"]."','".$l5 [0]."','".filtrage ($l4 ["CODE_MATIERE"])."','".filtrage ($l7 [0])."','".filtrage ($l4 ["CODE_DIVISION"])."'," ;
           $requete .= "'".filtrage ($l11 [0])."','0','1','".$millesime."')" ;
           $r10 = SQL_commande ($requete, $id_sql) ;
          }
        }
      }
     
     // Recherche disciplines groupe et insertion
     $r4 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_SERVICES_GROUPES WHERE ENSEIGNANT_ID='".$l1 ["ID"]."' ORDER BY CODE_GROUPE", $id_sql) ;
     If (SQL_nbr_lignes ($r4) > 0)
      {
       For ($j = 0 ; $j < SQL_nbr_lignes ($r4) ; $j++)
        {
         $ok_disc_groupe++ ;
         $l4 = SQL_tableau_associatif ($r4, "") ;
         
         // Recupere le nouveau numero de la discipline
         $r5 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_MATIERES WHERE CODE='".filtrage ($l4 ["CODE_MATIERE"])."' LIMIT 1", $id_sql) ;
         $l5 = SQL_tableau_associatif ($r5, "") ;
           
         // La discipline est-elle deja enregistree ?
         $r6 = SQL_commande ("SELECT id_discipline FROM disciplines WHERE code='".filtrage ($l4 ["CODE_MATIERE"])."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ;
         If (SQL_nbr_lignes ($r6) == 0)
          {
           // NON ! donc on enregistre...
           $requete = "INSERT INTO disciplines (nom_long,nom_court,nom_bref,code,millesime) VALUES " ;
           $requete .= "('".filtrage ($l5 ["LIBELLE_LONG"])."','".filtrage ($l5 ["LIBELLE_COURT"])."','".filtrage ($l5 ["CODE_GESTION"])."','".filtrage ($l4 ["CODE_MATIERE"])."','".$millesime."')" ;
           $r7 = SQL_commande ($requete, $id_sql) ;
           $r6 = SQL_commande ("SELECT id_discipline FROM disciplines WHERE code='".filtrage ($l4 ["CODE_MATIERE"])."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ;
          }
         $l5 = SQL_ligne_suivante ($r6) ;
         
         // Recherche id_classe
         $r7 = SQL_commande ("SELECT id_classe,nom_bref FROM classes c,".$sql_sconet."_".$entete."_DIVISIONS_APPARTENANCE_GROUPES a WHERE a.CODE_GROUPE='".filtrage ($l4 ["CODE_GROUPE"])."' AND a.CODE=c.nom_bref AND c.millesime='".$millesime."' LIMIT 1", $id_sql) ;
         $l7 = SQL_ligne_suivante ($r7) ;
     
         // Recherche id services classe
         $requete = "SELECT id_service_classe FROM services_classe WHERE discipline='".filtrage ($l5 [0])."' AND code_disc='".filtrage ($l4 ["CODE_MATIERE"])."' ";
         $requete .= "AND classe='".$l7 [0]."' AND code_classe='".filtrage ($l7 [1])."' AND optionnelle='0' AND groupe='1' AND millesime='".$millesime."' LIMIT 1" ;
         $r12 = SQL_commande ($requete, $id_sql) ;
         If (SQL_nbr_lignes ($r12) == 0)
          {
  	   // Enregistre le service classe
           $requete = "INSERT INTO services_classe (discipline,code_disc,classe,code_classe,optionnelle,groupe,millesime) VALUES " ;
           $requete .= "('".filtrage ($l5 [0])."','".filtrage ($l4 ["CODE_MATIERE"])."','".$l7 [0]."','".filtrage ($l7 [1])."','0','1','".$millesime."')" ;
	   $r12 = SQL_commande ($requete, $id_sql) ;
	   // Recherche nouvel id services classe
           $requete = "SELECT id_service_classe FROM services_classe WHERE code_disc='".filtrage ($l4 ["CODE_MATIERE"])."' AND discipline='".filtrage ($l5 [0])."' " ;
           $requete .= "AND classe='".filtrage ($l7 [0])."' AND code_classe='".filtrage ($l7 [1])."' AND optionnelle='0' AND groupe='1' AND millesime='".$millesime."'" ;
	   $r12 = SQL_commande ($requete, $id_sql) ;
          }
         // Lecture des ID
         For ($dr = 0 ; $dr < SQL_nbr_lignes ($r12) ; $dr++) { $l12 = SQL_ligne_suivante ($r12) ; }
  	  
         // Recherche double groupe classe
         $requete = "SELECT id_groupe_classe FROM groupes_classe WHERE code_groupe='".filtrage ($l4 ["CODE_GROUPE"])."' AND classe='".$l7 [0]."' " ;
         $requete .= "AND code_classe='".filtrage ($l7 [1])."' AND discipline='".$l5 [0]."' AND code_disc='".filtrage ($l4 ["CODE_MATIERE"])."' " ;
         $requete .= "AND service_classe='".$l12 [0]."' AND millesime='".$millesime."' LIMIT 1" ;
         $r11 = SQL_commande ($requete, $id_sql) ;
         // Definit le groupe
         If (SQL_nbr_lignes ($r11) == 0)
          {
           // Insertion du nouveau groupe classe
           $requete = "INSERT INTO groupes_classe (code_groupe,classe,code_classe,discipline,code_disc,service_classe,millesime) VALUES " ;
           $requete .= "('".filtrage ($l4 ["CODE_GROUPE"])."','".$l7 [0]."','".filtrage ($l7 [1])."','".$l5 [0]."'," ;
           $requete .= "'".filtrage ($l4 ["CODE_MATIERE"])."','".$l12 [0]."','".$millesime."')" ;
           $r11 = SQL_commande ($requete, $id_sql) ;
           // Recherche id groupe classe
           $requete = "SELECT MAX(id_groupe_classe) FROM groupes_classe WHERE code_groupe='".filtrage ($l4 ["CODE_GROUPE"])."' AND classe='".$l7 [0]."' ";
           $requete .= "AND code_classe='".filtrage ($l7 [1])."' AND discipline='".$l5 [0]."' AND code_disc='".filtrage ($l4 ["CODE_MATIERE"])."' " ;
           $requete .= "AND service_classe='".$l12 [0]."' AND millesime='".$millesime."'" ;
           $r11 = SQL_commande ($requete, $id_sql) ;
          }
         // Lecture des ID
         For ($dr = 0 ; $dr < SQL_nbr_lignes ($r11) ; $dr++) { $l11 = SQL_ligne_suivante ($r11) ; }
         
         // Recherche double service prof professeur='".$l3 [0]."' AND discipline='".$l5 [0]."' AND classe='".$l7 [0]."'
         $requete = "SELECT id_service_prof FROM services_prof WHERE professeur='".$l3 [0]."' AND numen_prof='".$l1 ["TYPE"].$l1 ["ID"]."' " ;
         $requete .= "AND discipline='".$l5 [0]."' AND code_disc='".filtrage ($l4 ["CODE_MATIERE"])."' AND classe='".$l7 [0]."' " ;
         $requete .= "AND code_classe='".filtrage ($l7 [1])."' AND service_classe='".$l12 [0]."' AND groupe_classe='".$l11 [0]."' AND millesime='".$millesime."' LIMIT 1" ;
         $r9 = SQL_commande ($requete, $id_sql) ;
         If (SQL_nbr_lignes ($r9) == 0)
          {
  	   // Pas de double -> on enregistre...
           $requete = "INSERT INTO services_prof (professeur,numen_prof,discipline,code_disc,classe,code_classe,service_classe,groupe_classe,coefficient,millesime) VALUES " ;
           $requete .= "('".$l3 [0]."','".$l1 ["TYPE"].$l1 ["ID"]."','".$l5 [0]."','".filtrage ($l4 ["CODE_MATIERE"])."','".$l7 [0]."','".filtrage ($l7 [1])."'," ;
           $requete .= "'".$l12 [0]."','".$l11 [0]."','1','".$millesime."')" ;
           $r10 = SQL_commande ($requete, $id_sql) ;
          }
        }
      }
    }
   // Insertion des matieres si aucun service
   If ($ok_disc_division == 0)
    {
     $r5 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_MATIERES ORDER BY LIBELLE_LONG,LIBELLE_COURT", $id_sql) ;
     For ($i = 0 ; $i < SQL_nbr_lignes ($r5) ; $i++)
      {
       $l5 = SQL_tableau_associatif ($r5, "") ;
       // La discipline est-elle deja enregistree ?
       $r6 = SQL_commande ("SELECT id_discipline FROM disciplines WHERE code='".filtrage ($l5 ["CODE"])."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ;
       If (SQL_nbr_lignes ($r6) == 0)
        {
         // NON ! donc on enregistre...
         $requete = "INSERT INTO disciplines (nom_long,nom_court,nom_bref,code,millesime) VALUES " ;
         $requete .= "('".filtrage ($l5 ["LIBELLE_LONG"])."','".filtrage ($l5 ["LIBELLE_COURT"])."','".filtrage ($l5 ["CODE_GESTION"])."','".filtrage ($l5 ["CODE"])."','".$millesime."')" ;
         $r7 = SQL_commande ($requete, $id_sql) ;
         //$r6 = SQL_commande ("SELECT id_discipline FROM disciplines WHERE code='".filtrage ($l5 ["CODE"])."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ;
        }
       //$l5 = SQL_ligne_suivante ($r6) ;
      }
    }
   // Insertion direction
   $r1 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_INDIVIDUS WHERE (TYPE='epp' OR TYPE='local') AND FONCTION LIKE 'DIR%' ORDER BY NOM_USAGE,PRENOM,DATE_NAISSANCE", $id_sql) ;
   For ($i = 0 ; $i < SQL_nbr_lignes ($r1) ; $i++)
    {
     $l1 = SQL_tableau_associatif ($r1, "") ;
     Switch ($l1 ["CIVILITE"])
      {
        Case 1 : $civ = 2 ; Break ;
        Case 2 : $civ = 0 ; Break ;
        Case 3 : $civ = 1 ; Break ;
       Default : $civ = 0 ; Break ;
      }
     $r2 = SQL_commande ("SELECT * FROM utilisateurs WHERE numen='".$l1 ["TYPE"].$l1 ["ID"]."' AND droits='".$droit_direction."' AND millesime='".$millesime."'", $id_sql) ;
     If (SQL_nbr_lignes ($r2) == 0)
      {
       // Nouveau prof
       $requete = "INSERT INTO utilisateurs (nom,prenom,droits,civilite,theme,numen,millesime) VALUES " ;
       $requete .= "('".filtrage ($l1 ["NOM_USAGE"])."','".filtrage ($l1 ["PRENOM"])."','".$droit_direction."','".$civ."','1','".$l1 ["TYPE"].$l1 ["ID"]."','".$millesime."')" ;
       $ok_profs++ ;
      }
     Else
      {
       // MAJ
       $r3 = SQL_tableau_associatif ($r2, "") ;
       $requete = "UPDATE utilisateurs SET nom='".filtrage ($l1 ["NOM_USAGE"])."',prenom='".filtrage ($l1 ["PRENOM"])."',civilite='".$civ."',millesime='".$millesime."'" ;
       $requete .= " WHERE id_utilisateur='".$r3 ["id_utilisateur"]."' LIMIT 1" ;
      }
     $r2 = SQL_commande ($requete, $id_sql) ;
    }
   // Insertion CPE
   $r1 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_INDIVIDUS WHERE (TYPE='epp' OR TYPE='local') AND FONCTION LIKE 'EDU%' ORDER BY NOM_USAGE,PRENOM,DATE_NAISSANCE", $id_sql) ;
   For ($i = 0 ; $i < SQL_nbr_lignes ($r1) ; $i++)
    {
     $l1 = SQL_tableau_associatif ($r1, "") ;
     Switch ($l1 ["CIVILITE"])
      {
        Case 1 : $civ = 2 ; Break ;
        Case 2 : $civ = 0 ; Break ;
        Case 3 : $civ = 1 ; Break ;
       Default : $civ = 0 ; Break ;
      }
     $r2 = SQL_commande ("SELECT * FROM utilisateurs WHERE numen='".$l1 ["TYPE"].$l1 ["ID"]."' AND droits='".$droit_cpe."' AND millesime='".$millesime."'", $id_sql) ;
     If (SQL_nbr_lignes ($r2) == 0)
      {
       // Nouveau prof
       $requete = "INSERT INTO utilisateurs (nom,prenom,droits,civilite,theme,numen,millesime) VALUES " ;
       $requete .= "('".filtrage ($l1 ["NOM_USAGE"])."','".filtrage ($l1 ["PRENOM"])."','".$droit_cpe."','".$civ."','1','".$l1 ["TYPE"].$l1 ["ID"]."','".$millesime."')" ;
       $ok_profs++ ;
      }
     Else
      {
       // MAJ
       $r3 = SQL_tableau_associatif ($r2, "") ;
       $requete = "UPDATE utilisateurs SET nom='".filtrage ($l1 ["NOM_USAGE"])."',prenom='".filtrage ($l1 ["PRENOM"])."',civilite='".$civ."',millesime='".$millesime."'" ;
       $requete .= " WHERE id_utilisateur='".$r3 ["id_utilisateur"]."' LIMIT 1" ;
      }
     $r2 = SQL_commande ($requete, $id_sql) ;
    }
   // Etape finale : Mise a jour des profs principaux
   $pprof = SQL_commande ("SELECT u.id_utilisateur,u.numen,c.id_classe FROM utilisateurs u,classes c WHERE c.numen_prof_princ=u.numen AND c.millesime='".$millesime."'", $id_sql) ;
   For ($i = 0 ; $i < SQL_nbr_lignes ($pprof) ; $i++)
    {
     $pp = SQL_ligne_suivante ($pprof) ;
     $ok = SQL_commande ("UPDATE classes SET id_prof_princ='".$pp [0]."',numen_prof_princ='".$pp [1]."' WHERE id_classe='".$pp [2]."' LIMIT 1", $id_sql) ;
    }
   // Etat de sortie
   $struc [0] = $ok_etab ;
   $struc [1] = $ok_regime ;
   $struc [2] = $ok_profs ;
   $struc [3] = $ok_disc_division ;
   $struc [4] = $ok_disc_groupe ;
   $struc [5] = $ok_classe ;
   Return $struc ;
  }
 
 /**
 * Insertion/Mise a jour des eleves
 * @param string $entete Nom d'entete pour tables d'importation
 * @return mixed Etat de l'insertion/mise a jour
 *  Codes de sortie : -4 : Pas d'etablissement scolaire
 *                    -3 : Aucune indication de millesime
 *                    -2 : Fichier qui ne correspond pas a l'annee courant
 *                    -1 : Retour en arriere millesime (erreur)
 *       ou
 *  Table de sortie :
 *                   [0][0][0]=Nombre d'eleves a mettre a jour (notes)
 *                   [1][x][0]=id_eleve nouveau ou changement classe (x allant de 1 a [0][0][0])
 *
 *                   [0][0][1]=Nombre d'eleves ou il y a plusieurs choix possibles
 *                   [2][x][0]=Nombre d'eleve
 *                   [2][x][y]=id_eleve en double (x allant de 1 a [0][0][1])
 *
 *                   [0][0][2]=Nombre d'eleves qui doivent changer de classe
 *                   [3][x][0]=id eleve
 *
 *                   [0][0][3]=Eleves a verifier (nom, prenom, classe)
 *                   [4][x][0]=id eleve
 */
 Function ins_maj_eleves ($entete)
  {
   Global $id_sql, $sql_sconet, $note_par_defaut, $desactivation_eleve, $debug_SQL ;

   $millesime = millesime (0) ;
   $etat [0][0][0] = $etat [0][0][1] = $etat [0][0][2] = $etat [0][0][3] = 0 ;
   // Verification de l'annee courante et de l'etablissement
   $r0 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_PARAMETRES LIMIT 1", $id_sql) ;
   If (SQL_nbr_lignes ($r0) == 1)
    {
     $l0 = SQL_tableau_associatif ($r0, "") ;
     If ($l0 ["ANNEE_SCOLAIRE"] == $millesime)
      {
       // Etablissement a traiter
       $r1 = SQL_commande ("SELECT * FROM etablissements WHERE numero='".$l0 ["UAJ"]."' LIMIT 1", $id_sql) ;
       If (SQL_nbr_lignes ($r1) == 1)
        {
	 $l1 = SQL_tableau_associatif ($r1, "") ;
	 $r2 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_ELEVES WHERE DATE_SORTIE=''", $id_sql) ;
	 $n2 = SQL_nbr_lignes ($r2) ;
	 For ($i = 0 ; $i < $n2 ; $i++)
	  {
	   $l2 = SQL_tableau_associatif ($r2, "") ;
	   // Recherche code classe
	   $r4 = SQL_commande ("SELECT s.CODE_STRUCTURE,c.id_classe,c.nom_bref FROM ".$sql_sconet."_".$entete."_STRUCTURES s,classes c WHERE s.ELEVE_ID='".$l2 ["ELEVE_ID"]."' AND s.ELENOET='".$l2 ["ELENOET"]."' AND s.CODE_STRUCTURE=c.nom_bref AND c.millesime='".$millesime."'", $id_sql) ;
	   $n4 = SQL_nbr_lignes ($r4) ;
	   If ($n4 == 1)
	    {
	     $l4 = SQL_ligne_suivante ($r4) ;
	     // L'eleve existe-t-il dans la base ?
	     $requete = "SELECT id_eleve,classe,nom,prenoms FROM eleves WHERE (exterieur='0' OR exterieur='-".$desactivation_eleve."') AND nom='".filtrage ($l2 ["NOM"])."' AND date_naissance='".encode_date ($l2 ["DATE_NAISS"])."' " ;
	     $requete .= "AND sexe='" ; If ($l2 ["CODE_SEXE"] == 1) { $requete .= "M" ; } Else { $requete .= "F" ; }
	     $requete .= "' AND millesime='".$millesime."'" ;
	     $ok_maj = 0 ;
	     // Est-ce que l'identifiant national existe ? (unique)
	     If ($l2 ["ID_NATIONAL"] != "")
	      {
	       $r3 = SQL_commande ("SELECT id_eleve,classe,nom,prenoms FROM eleves WHERE (exterieur='0' OR exterieur='-".$desactivation_eleve."') AND repere2='".$l2 ["ID_NATIONAL"]."' AND millesime='".$millesime."'", $id_sql) ;
	       $n3 = SQL_nbr_lignes ($r3) ;
	      }
	     Else { $n3 = 0 ; } 
	     If ($n3 == 0)
	      {
	       // Est-ce que l'identifiant Sconet existe ?
	       If ($l2 ["ELEVE_ID"] != "")
	        {
	         $r3 = SQL_commande ($requete." AND repere3='".$l2 ["ELEVE_ID"]."'", $id_sql) ;
	         $n3 = SQL_nbr_lignes ($r3) ;
		}
	       Else { $n3 = 0 ; } 
	       If ($n3 == 0)
	        {
	         // Est-ce que l'identifiant GEP existe ?
		 If ($l2 ["ELENOET"] != "")
	          {
	           $r3 = SQL_commande ($requete." AND repere1='".$l2 ["ELENOET"]."'", $id_sql) ;
	           $n3 = SQL_nbr_lignes ($r3) ;
		  }
	         Else { $n3 = 0 ; } 
		 // Est-ce que tous les reperes sont faux ? Test avec le prenom.
		 If ($n3 == 0)
	          {
		   $r3 = SQL_commande ($requete." AND prenoms='".filtrage ($l2 ["PRENOM"])."'", $id_sql) ;
	           $n3 = SQL_nbr_lignes ($r3) ;
		   // Est-ce que tous les reperes sont faux ? Test sans le prenom.
		   If ($n3 == 0)
	            {
		     $r3 = SQL_commande ($requete, $id_sql) ;
	             $n3 = SQL_nbr_lignes ($r3) ;
		     // Est-ce que tous les reperes sont faux ? Test avec seulement le nom, (sexe) et classe
		     If ($n3 == 0)
		      {
		       $requete = "SELECT id_eleve,classe,nom,prenoms,date_naissance FROM eleves WHERE (exterieur='0' OR exterieur='-".$desactivation_eleve."') AND nom='".filtrage ($l2 ["NOM"])."' " ;
	               //$requete .= "AND sexe='" ; If ($l2 ["CODE_SEXE"] == 1) { $requete .= "M" ; } Else { $requete .= "F" ; } $requete .= "' " ;
		       $requete .= "AND millesime='".$millesime."' AND classe='".$l4 [1]."'" ;
		       $r3 = SQL_commande ($requete, $id_sql) ;
	               $n3 = SQL_nbr_lignes ($r3) ;
		      }
		    }
		  }
		 Else { $ok_maj = 1 ; }
		}
	       Else
	        {
	         // On est sur de la MAJ
	         $ok_maj = 1 ;
	        }
	      }
	     Else
	      {
	       // On est sur de la MAJ
	       $ok_maj = 1 ;
	      }
	     If ($n3 > 0)
	      {
	       // Maj
	       If (StrPos ($l2 ["PRENOM"], " ")) { $prenom = SubStr ($l2 ["PRENOM"], 0, StrPos ($l2 ["PRENOM"], " ")) ; } Else { $prenom = $l2 ["PRENOM"] ; }
	       If (StrPos ($prenom, "-")) { $prenom = SubStr ($prenom, 0, StrPos ($prenom, "-")) ; }
	       $prenom = StrToUpper (filtrage_accents (filtrage ($prenom))) ;
	       $date_naissance = encode_date ($l2 ["DATE_NAISS"]) ;
	       If ($n3 > 1)
	        {
	         For ($j = 0 ; $j < $n3 ; $j++)
	          {
	           $l3 = SQL_ligne_suivante ($r3) ;
		   $elv [$j][0] = $l3 [0] ;
		   $elv [$j][1] = $l3 [1] ;
		   $elv [$j][2] = $l3 [2] ;
		   $elv [$j][3] = $l3 [3] ;
		   $elv [$j][4] = $l3 [4] ;
                   If (StrPos ($l3 [3], " ")) { $elv [$j][3] = SubStr ($l3 [3], 0, StrPos ($l3 [3], " ")) ; } Else { $elv [$j][3] = $l3 [3] ; }
		   If (StrPos ($elv [$j][3], "-")) { $elv [$j][3] = SubStr ($elv [$j][3], 0, StrPos ($elv [$j][3], "-")) ; }
		   $elv [$j][3] = StrToUpper (filtrage_accents (filtrage (filtrage_utf8 ($elv [$j][3])))) ;
		   // Meme classe et (meme prenom ou meme date de naissance) ?
		   If ($ok_maj == 0)
		    {
		     If (($l4 [1] == $elv [$j][1]) And (($prenom == $elv [$j][3]) Or ($date_naissance == $elv [$j][4])))
		      { $elv [$j][4] = 1 ; $ok_maj++ ; } Else { $elv [$j][4] = 0 ; }
		    }
		   Else { $elv [$j][4] = 1 ; }
		  }
		}
	       Else
	        {
		 $l3 = SQL_ligne_suivante ($r3) ;
		 $elv [0][0] = $l3 [0] ;
		 $elv [0][1] = $l3 [1] ;
		 $elv [0][2] = $l3 [2] ;
		 $elv [0][3] = $l3 [3] ;
		 $elv [0][4] = $l3 [4] ;
                 If (StrPos ($l3 [3], " ")) { $elv [0][3] = SubStr ($l3 [3], 0, StrPos ($l3 [3], " ")) ; } Else { $elv [0][3] = $l3 [3] ; }
		 If (StrPos ($elv [0][3], "-")) { $elv [0][3] = SubStr ($elv [0][3], 0, StrPos ($elv [0][3], "-")) ; }
		 $elv [0][3] = StrToUpper (filtrage_accents (filtrage (filtrage_utf8 ($elv [0][3])))) ;
		 // Meme classe et (meme prenom ou meme date de naissance) ?
		 If ($ok_maj == 0)
		  {
		   If (($l4 [1] == $elv [0][1]) And (($prenom == $elv [0][3]) Or ($date_naissance == $elv [0][4])))
		    { $elv [0][4] = 1 ; $ok_maj++ ; } Else { $elv [0][4] = 0 ; }
		  }
		 Else { $elv [0][4] = 1 ; }
		}
	      }
	     If ($ok_maj == 1)
	      {
	       $eleve = 0 ;
	       For ($j = 0 ; $j < $n3 ; $j++)
	        {
	         If ($elv [$j][4] == 1) { $eleve = $elv [$j][0] ; }
		}
	       If ($eleve > 0)
	        {
	         $requete = "UPDATE eleves SET nom='".filtrage ($l2 ["NOM"])."',prenoms='".filtrage ($l2 ["PRENOM"])."',date_naissance='".encode_date ($l2 ["DATE_NAISS"])."'," ;
	         $requete .= "repere1='".$l2 ["ELENOET"]."',repere2='".$l2 ["ID_NATIONAL"]."',repere3='".$l2 ["ELEVE_ID"]."',classe='".$l4 [1]."',code_classe='".$l4 [2]."'" ;
	         If ($l2 ["CODE_SEXE"] == 1) { $requete .= ",sexe='M'" ; } Else { $requete .= ",sexe='F'" ; }
	         If ($l2 ["DOUBLEMENT"] == 0) { $requete .= ",redoublant='N'" ; } Else { $requete .= ",redoublant='O'" ; }
	         $requete .= ",regime='".$l2 ["CODE_REGIME"]."',maj='1',millesime='".$millesime."'" ;
	         $requete .= " WHERE id_eleve='".$eleve."' LIMIT 1" ;
		 $r5 = SQL_commande ($requete, $id_sql) ;
		 $repere1 = $l2 ["ELENOET"] ;
		 $repere2 = $l2 ["ID_NATIONAL"] ;
		 $repere3 = $l2 ["ELEVE_ID"] ;
		}
	      }
	     ElseIf (($ok_maj > 1) Or (($ok_maj == 0) And ($n3 > 0)))
	      {
	       $eleve = 0 ;
	       If ($n3 > 1)
	        {
	         //echo "<font color=\"#ff0000\">Plusieurs choix possibles (".$l4 [1]."|".$l3 [1].")->".$requete."</font><br>" ;
		 //echo $l2 ["ID_ELEVES"]."<br>" ;
		 $etat [0][0][1]++ ;
	         $etat [2][$etat [0][0][1]][0] = $n3 ;
		 For ($j = 1 ; $j <= $n3 ; $j++)
	          {
		   $etat [2][$etat [0][0][1]][$j] = $elv [$j-1][0] ;
		   //echo $l4 [1]."==".$elv [$j-1][1]."->".$prenom."==".$elv [$j-1][3]."<br>" ;
		  }
		}
	       Else
		{
		 If ($l4 [1] == $elv [0][1])
		  {
		   // Eleve seul, meme classe, mais pas meme prenom
		  }
		 Else
		  {
		   // Eleve seul, classe differente, prenom different
		   //echo "<font color=\"#ff0000\">Changement classe (".$l4 [1]."|".$l3 [1].")->".$requete."</font><br>" ;
		   //echo $l2 ["ID_ELEVES"]."<br>" ;
		   $etat [0][0][3]++ ;
	           $etat [4][$etat [0][0][3]][0] = $elv [0][0] ;
		   //echo $l4 [1]."==".$elv [0][1]."->".$prenom."==".$elv [0][3]."<br>" ;
		  }
		}
	      }
	     Else
	      {
	       // Insertion
	       $requete = "INSERT INTO eleves (nom,prenoms,date_naissance,repere1,repere2,repere3,classe,code_classe,sexe,redoublant,regime,maj,millesime) VALUES " ;
	       $requete .= "('".filtrage ($l2 ["NOM"])."','".filtrage ($l2 ["PRENOM"])."','".encode_date ($l2 ["DATE_NAISS"])."','".$l2 ["ELENOET"]."'," ;
	       $requete .= "'".$l2 ["ID_NATIONAL"]."','".$l2 ["ELEVE_ID"]."','".$l4 [1]."','".$l4 [2]."'" ;
	       If ($l2 ["CODE_SEXE"] == 1) { $requete .= ",'M'" ; } Else { $requete .= ",'F'" ; }
	       If ($l2 ["DOUBLEMENT"] == 0) { $requete .= ",'N'" ; } Else { $requete .= ",'O'" ; }
	       $requete .= ",'".$l2 ["CODE_REGIME"]."','1','".$millesime."')" ;
	       $r5 = SQL_commande ($requete, $id_sql) ;
	       // Recherche eleve
	       $requete = "SELECT id_eleve,repere1,repere2 FROM eleves WHERE nom='".filtrage ($l2 ["NOM"])."' AND prenoms='".filtrage ($l2 ["PRENOM"])."' AND date_naissance='".encode_date ($l2 ["DATE_NAISS"])."' " ;
	       $requete .= "AND repere1='".$l2 ["ELENOET"]."' AND repere2='".$l2 ["ID_NATIONAL"]."' AND repere3='".$l2 ["ELEVE_ID"]."' AND classe='".$l4 [1]."' AND code_classe='".$l4 [2]."' AND sexe='" ;
	       If ($l2 ["CODE_SEXE"] == 1) { $requete .= "M" ; } Else { $requete .= "F" ; }
	       $requete .= "' AND redoublant='" ;
	       If ($l2 ["DOUBLEMENT"] == 0) { $requete .= "N" ; } Else { $requete .= "O" ; }
	       $requete .= "' AND regime='".$l2 ["CODE_REGIME"]."' AND maj='1' AND millesime='".$millesime."' LIMIT 1" ;
	       //echo $requete."<br>" ;
	       $r6 = SQL_commande ($requete, $id_sql) ;
	       If (SQL_nbr_lignes ($r6) == 1)
	        {
	         $l6 = SQL_ligne_suivante ($r6) ;
	         $etat [0][0][0]++ ;
	         $etat [1][$etat [0][0][0]][0] = $l6 [0] ;
		 $eleve = $l6 [0] ;
		 $repere1 = $l6 [1] ;
		 $repere2 = $l6 [2] ;
		}
	      }
	     // Insertion/maj des options
	     If ($eleve > 0)
	      {
	       $r7 = SQL_commande ("SELECT s.* FROM ".$sql_sconet."_".$entete."_ELEVES e,".$sql_sconet."_".$entete."_OPTIONS o,services_classe s
	                             WHERE e.ELEVE_ID='".$l2 ["ELEVE_ID"]."' AND o.ELEVE_ID=e.ELEVE_ID AND e.DATE_SORTIE='' AND s.classe='".$l4 [1]."'
				       AND s.code_disc=o.CODE_MATIERE AND s.millesime='".$millesime."'", $id_sql) ;
	       $n7 = SQL_nbr_lignes ($r7) ;
	       For ($i = 0 ; $i < $n7 ; $i++)
	        {
	         $l7 = SQL_tableau_associatif ($r7, "") ;
	         If (($l7 ["optionnelle"] != 0) Or ($l7 ["groupe"] != 0))
	          {
		   // Traite si c'est declare optionnelle ou groupe (ou les deux)
		   If ($l7 ["optionnelle"] != 0)
		    {
		     // Est-ce que l'eleve fait parti du groupe optionnel
		     $r8 = SQL_commande ("SELECT id_option_eleve FROM options_eleve WHERE eleve='".$eleve."' AND discipline='".$l7 ["discipline"]."' AND service_classe='".$l7 ["id_service_classe"]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ;
		     If (SQL_nbr_lignes ($r8) == 0)
		      {
		       // On ajoute l'eleve
		       $r9 = SQL_commande ("INSERT INTO options_eleve (eleve,repere1,repere2,discipline,code_disc,service_classe,millesime) VALUES
		                           ('".$eleve."','".$repere1."','".$repere2."','".$l7 ["discipline"]."','".$l7 ["code_disc"]."','".$l7 ["id_service_classe"]."','".$millesime."')", $id_sql) ;
		      }
		    }
		   ElseIf ($l7 ["groupe"] != 0)
		    {
		     // Est-ce que l'eleve fait parti du groupe
		     $r8 = SQL_commande ("SELECT id_groupe_eleve FROM groupes_eleve WHERE eleve='".$eleve."' AND discipline='".$l7 ["discipline"]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ;
		     If (SQL_nbr_lignes ($r8) == 0)
		      {
		       // Recherche groupe classe
		       $r9 = SQL_commande ("SELECT id_groupe_classe FROM groupes_classe WHERE service_classe='".$l7 ["id_service_classe"]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ;
		       If (SQL_nbr_lignes ($r9) == 1)
		        {
			 $l9 = SQL_ligne_suivante ($r9) ;
		         // On ajoute l'eleve
		         $r10 = SQL_commande ("INSERT INTO groupes_eleve (eleve,repere1,repere2,discipline,code_disc,groupe,millesime) VALUES
		                               ('".$eleve."','".$repere1."','".$repere2."','".$l7 ["discipline"]."','".$l7 ["code_disc"]."','".$l9 [0]."','".$millesime."')", $id_sql) ;
			}
		       Else
		        {
			 // On ajoute le groupe et l'eleve
			 $r10 = SQL_commande ("SELECT u.nom FROM utilisateurs u,services_prof p WHERE p.service_classe='".$l7 ["id_service_classe"]."' AND p.professeur=u.id_utilisateur LIMIT 1", $id_sql) ;
			 If (SQL_nbr_lignes ($r10) == 1) { $l10 = SQL_ligne_suivante ($r10) ; } Else { $l10 [0] = "PDP" ; }
			 $l10 [0] = StrToUpper (filtrage_accents ($l10 [0])) ;
			 $nom_groupe = SubStr (SubStr ($l10 [0], 0, 3)."_".$l7 ["id_service_classe"], 0, 8) ;
			 $r11 = SQL_commande ("INSERT INTO groupes_classe (code_groupe,classe,code_classe,discipline,code_disc,service_classe,millesime)
			                       VALUES ('".$nom_groupe."','".$l4 [1]."','".$l4 [2]."','".$l7 ["discipline"]."','".$l7 ["code_disc"]."','".$l7 ["id_service_classe"]."','".$millesime."')", $id_sql ) ;
			 $r12 = SQL_commande ("SELECT id_group_classe FROM groupes_classe WHERE code_groupe='".$nom_groupe."' AND classe='".$l4 [1]."' AND code_classe='".$l4 [2]."' AND discipline='".$l7 ["discipline"]."' AND code_disc='".$l7 ["code_disc"]."' AND service_classe='".$l7 ["id_service_classe"]."' AND millesime='".$millesime."' LIMIT 1", $id_sql) ;
			 If (SQL_nbr_lignes ($r12) == 1)
			  {
			   $l12 = SQL_ligne_suivante ($l12) ;
			   // On ajoute l'eleve
		           $r13 = SQL_commande ("INSERT INTO groupes_eleve (eleve,repere1,repere2,discipline,code_disc,groupe,millesime) VALUES
		                                ('".$eleve."','".$repere1."','".$repere2."','".$l7 ["discipline"]."','".$l7 ["code_disc"]."','".$l12 [0]."','".$millesime."')", $id_sql) ;
			  }
			}
		      }
		    }
	           //echo $l7 ["id_service_classe"]."->".$l7 ["optionnelle"]."-".$l7 ["groupe"]."<br>" ;
		  }
	        }
	      }
	    }
	   Else
	    {
	     // Division non unique : Bizarre !
	     //echo "<b>PAS DIV UNIQ</b>:".$l2 ["NOM"]."-".$l2 ["PRENOM"]."<br>" ;
	    }
	  }
	 Return $etat ;
	}
       Else { Return -4 ; } // Aucun etablissement scolaire entree -> A inserer d'abord
      }
     Else { Return -2 ; } // Ce n'est pas la meme annee
    }
   Else { Return -3 ; } // Aucune annee
  }
 
 /**
 * Insertion/Mise a jour des responsables eleves
 * @param string $entete Nom d'entete pour tables d'importation
 * @return mixed Etat de l'insertion/mise a jour
 *  Codes de sortie : -5 : Aucun responsable dans le fichier joint
 *                    -4 : Pas d'etablissement scolaire
 *                    -3 : Aucune indication de millesime
 *                    -2 : Fichier qui ne correspond pas a l'annee courant
 *                    -1 : Retour en arriere millesime (erreur)
 *       ou
 *  Table de sortie :
 *                   [0][0][0]=Nombre d'eleves a mettre a jour (notes)
 *                   [1][x][0]=id_eleve nouveau ou changement classe (x allant de 1 a [0][0][0])
 *
 *                   [0][0][1]=Nombre d'eleves ou il y a plusieurs choix possibles
 *                   [2][x][0]=Nombre d'eleve
 *                   [2][x][y]=id_eleve en double (x allant de 1 a [0][0][1])
 *
 *                   [0][0][2]=Nombre d'eleves qui doivent changer de classe
 *                   [3][x][0]=id eleve
 */
 Function ins_maj_responsables ($entete)
  {
   Global $id_sql, $sql_sconet, $note_par_defaut ;

   $millesime = millesime (0) ;
   $etat [0][0][0] = $etat [0][0][1] = $etat [0][0][2] = 0 ;
   // Verification de l'annee courante et de l'etablissement
   $r0 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_PARAMETRES LIMIT 1", $id_sql) ;
   If (SQL_nbr_lignes ($r0) == 1)
    {
     $l0 = SQL_tableau_associatif ($r0, "") ;
     If ($l0 ["ANNEE_SCOLAIRE"] == $millesime)
      {
       // Etablissement a traiter
       $r1 = SQL_commande ("SELECT * FROM etablissements WHERE numero='".$l0 ["UAJ"]."' LIMIT 1", $id_sql) ;
       If (SQL_nbr_lignes ($r1) == 1)
        {
	 // Recherche des classes concernees
	 $r1 = SQL_commande ("SELECT c.id_classe FROM classes c,etablissements e WHERE c.etablissement=e.id_etablissement AND e.numero='".$l0 ["UAJ"]."'", $id_sql) ;
	 $n1 = SQL_nbr_lignes ($r1) ;
	 If ($n1 > 0)
	  {
	   For ($i = 0 ; $i < $n1 ; $i++)
	    {
	     $l1 = SQL_ligne_suivante ($r1) ;
	     $r2 = SQL_commande ("SELECT id_eleve,repere3 FROM eleves WHERE classe='".$l1 [0]."' AND millesime='".$millesime."'", $id_sql) ;
	     $n2 = SQL_nbr_lignes ($r2) ;
	     If ($n2 > 0)
	      {
	       For ($j = 0 ; $j < $n2 ; $j++)
	        {
	         $l2 = SQL_ligne_suivante ($r2) ;
		 $r3 = SQL_commande ("SELECT PERSONNE_ID,RESP_LEGAL,PERS_CONTACT FROM ".$sql_sconet."_".$entete."_RESPONSABLES WHERE ELEVE_ID='".$l2 [1]."' AND (RESP_LEGAL>0 OR PERS_CONTACT>0) ORDER BY RESP_LEGAL", $id_sql) ;
		 $n3 = SQL_nbr_lignes ($r3) ;
		 If ($n3 > 0)
	          {
		   $num = 0 ;
		   $requete = "UPDATE eleves SET " ;
		   For ($k = 0 ; $k < $n3 ; $k++)
	            {
		     $l3 = SQL_ligne_suivante ($r3) ;
		     $r4 = SQL_commande ("SELECT p.LC_CIVILITE,p.NOM,p.PRENOM,p.TEL_PERSONNEL,p.TEL_PROFESSIONNEL,
		                                 a.LIGNE1_ADRESSE,a.LIGNE2_ADRESSE,a.LIGNE3_ADRESSE,a.LIGNE4_ADRESSE,a.CODE_POSTAL,a.LIBELLE_POSTAL
		                            FROM ".$sql_sconet."_".$entete."_PERSONNES p,".$sql_sconet."_".$entete."_ADRESSES a
		                           WHERE p.PERSONNE_ID='".$l3 [0]."' AND p.ADRESSE_ID=a.ADRESSE_ID LIMIT 1", $id_sql) ;
		     $n4 = SQL_nbr_lignes ($r4) ;
		     If ($n4 == 1)
	              {
		       $l4 = SQL_ligne_suivante ($r4) ;
		       If (($l3 [1] == 0) And ($n3 == 1))
		        {
		         // Un seul responsable -> PERS_CONTACT
		         $requete .= "civilite_parents='".filtrage ($l4 [0])."',nom_parents='".filtrage ($l4 [1])."',prenom_parents='".filtrage ($l4 [2])."',adresse1='".filtrage ($l4 [5])."',adresse2='".filtrage ($l4 [6])."',cp='".filtrage ($l4 [9])."',ville='".filtrage ($l4 [10])."',telephone='".filtrage ($l4 [3])."',telephone_travail='".filtrage ($l4 [4])."'," ;
		         $requete .= "civilite_parents_p2='',nom_parents_p2='',prenom_parents_p2='',adresse1_p2='',adresse2_p2='',cp_p2='',ville_p2='',telephone_p2='',telephone_travail_p2=''" ;
		        }
		       Else
		        {
		         If ($l3 [1] == 1)
		          {
		  	   $requete .= "civilite_parents='".filtrage ($l4 [0])."',nom_parents='".filtrage ($l4 [1])."',prenom_parents='".filtrage ($l4 [2])."',adresse1='".filtrage ($l4 [5])."',adresse2='".filtrage ($l4 [6])."',cp='".filtrage ($l4 [9])."',ville='".filtrage ($l4 [10])."',telephone='".filtrage ($l4 [3])."',telephone_travail='".filtrage ($l4 [4])."'" ;
		  	  }
		         ElseIf ($l3 [1] == 2)
		          {
			   $requete .= ",civilite_parents_p2='".filtrage ($l4 [0])."',nom_parents_p2='".filtrage ($l4 [1])."',prenom_parents_p2='".filtrage ($l4 [2])."',adresse1_p2='".filtrage ($l4 [5])."',adresse2_p2='".filtrage ($l4 [6])."',cp_p2='".filtrage ($l4 [9])."',ville_p2='".filtrage ($l4 [10])."',telephone_p2='".filtrage ($l4 [3])."',telephone_travail_p2='".filtrage ($l4 [4])."'" ;
			  }
		        }
		      }
		    }
                   $requete .= " WHERE id_eleve='".$l2 [0]."' LIMIT 1" ;
		   //echo $requete."<br>" ;
		   $r5 = SQL_commande ($requete, $id_sql) ;
		   $etat [0][0][0]++ ;
		  }
		}
	      }
	    }
	 
	   Return $etat ;
	  }
	 Else { Return -5 ; } // Aucun responsable dans le fichier
	}
       Else { Return -4 ; } // Aucun etablissement scolaire entree -> A inserer d'abord
      }
     Else { Return -2 ; } // Ce n'est pas la meme annee
    }
   Else { Return -3 ; } // Aucune annee
  }
 
 /**
 * Insertion/Mise a jour des MEFs structure
 * @param string $entete Nom d'entete pour tables d'importation
 * @param int $id_etablissement Identifiant de l'etablissement
 * @return mixed Etat de l'insertion/mise a jour 0=Mise a jour seulement, >0=Insertion nouveaux mefs
 */
 Function ins_maj_mefs_structure ($entete, $id_etablissement)
  {
   Global $id_sql, $sql_sconet ;
   If ($id_etablissement == 0)
    {
     $r0 = SQL_commande ("SELECT CODE FROM ".$sql_sconet."_".$entete."_UAJ LIMIT 1", $id_sql) ;
     $ok_maj = 0 ;
     If (SQL_nbr_lignes ($r0) == 1)
      {
       $l0 = SQL_ligne_suivante ($r0) ;
       $r0 = SQL_commande ("SELECT id_etablissement FROM etablissements WHERE numero='".$l0 [0]."' AND millesime='".millesime (0)."' LIMIT 1", $id_sql) ;
       $ligne = SQL_ligne_suivante ($r0) ;
      }
     Else { $ligne [0] = 0 ; }
     $id_etablissement = $ligne [0] ;
    }
   $etat = 0 ;
   $r0 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_MEFS", $id_sql) ;
   $nbr_r0 = SQL_nbr_lignes ($r0) ;
   If ($nbr_r0 > 0)
    {
     $ok = 0 ;
     $requete_insertion_mef = "INSERT INTO mefs (id_etablissement,code,formation,specialite,libelle_long,libelle_edition,mefstat11,mefstat4) VALUES " ;
     For ($i = 0 ; $i < $nbr_r0 ; $i++)
      {
       $l0 = SQL_tableau_associatif ($r0, "") ;
       // Existe ?
       $requete = "SELECT id_mef FROM mefs WHERE id_etablissement='".$id_etablissement."' AND code='".$l0 ["CODE"]."' AND formation='".$l0 ["FORMATION"]."' AND specialite='".$l0 ["SPECIALITE"]."' AND mefstat11='".$l0 ["MEFSTAT11"]."' AND mefstat4='".$l0 ["MEFSTAT4"]."' LIMIT 1" ;
       $r1 = SQL_commande ($requete, $id_sql) ;
       If (SQL_nbr_lignes ($r1) == 1)
        {
	 // MAJ seulement
	 $l1 = SQL_ligne_suivante ($r1) ;
	 $requete  = "UPDATE mefs SET libelle_long='".$l0 ["LIBELLE_LONG"]."',libelle_edition='".$l0 ["LIBELLE_EDITION"]."' WHERE id_mef='".$l1 [0]."' LIMIT 1" ;
	 $r2 = SQL_commande ($requete, $id_sql) ;
	}
       Else
        {
         If ($ok != 0) { $requete_insertion_mef .= "," ; }
         $requete_insertion_mef .= "('".$id_etablissement."','".$l0 ["CODE"]."','".$l0 ["FORMATION"]."','".$l0 ["SPECIALITE"]."','".$l0 ["LIBELLE_LONG"]."','".$l0 ["LIBELLE_EDITION"]."','".$l0 ["MEFSTAT11"]."','".$l0 ["MEFSTAT4"]."')" ;
	 $ok = 1 ;
	}
      }
     If ($ok == 1)
      {
       $r2 = SQL_commande ($requete_insertion_mef, $id_sql) ;
       $etat++ ;
      }
    }
   
   $ok = 0 ;
   $r0 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_MEFSTATS4", $id_sql) ;
   $nbr_r0 = SQL_nbr_lignes ($r0) ;
   If ($nbr_r0 > 0)
    {
     $ok = 0 ;
     $requete_insertion_mef = "INSERT INTO mefstats4 (code,libelle_court,libelle_long) VALUES " ;
     For ($i = 0 ; $i < $nbr_r0 ; $i++)
      {
       $l0 = SQL_tableau_associatif ($r0, "") ;
       // Existe ?
       $requete = "SELECT id_mefstats4 FROM mefstats4 WHERE code='".$l0 ["CODE"]."' LIMIT 1" ;
       $r1 = SQL_commande ($requete, $id_sql) ;
       If (SQL_nbr_lignes ($r1) == 1)
        {
	 // MAJ seulement
	 $l1 = SQL_ligne_suivante ($r1) ;
	 $requete  = "UPDATE mefstats4 SET libelle_court='".$l0 ["LIBELLE_COURT"]."',libelle_long='".$l0 ["LIBELLE_LONG"]."' WHERE id_mefstats4='".$l1 [0]."' LIMIT 1" ;
	 $r2 = SQL_commande ($requete, $id_sql) ;
	}
       Else
        {
         If ($ok != 0) { $requete_insertion_mef .= "," ; }
         $requete_insertion_mef .= "('".$l0 ["CODE"]."','".$l0 ["LIBELLE_COURT"]."','".$l0 ["LIBELLE_LONG"]."')" ;
	 $ok = 1 ;
	}
      }
     If ($ok == 1)
      {
       $r2 = SQL_commande ($requete_insertion_mef, $id_sql) ;
       $etat++ ;
      }
    }
   Return $etat ;
  }
 
 /**
 * Insertion/Mise a jour des Modalites d'election
 * @param string $entete Nom d'entete pour tables d'importation
 * @return mixed Etat de l'insertion/mise a jour 0=Mise a jour seulement, >0=Insertion nouveaux mefs
 */
 Function ins_maj_modalites ($entete)
  {
   Global $id_sql, $sql_sconet ;
   $etat = 0 ;
   
   // Remplissage de la table types_modalites 
   $r0 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_MODALITES_ELECTION", $id_sql) ;
   $nbr_r0 = SQL_nbr_lignes ($r0) ;
   If ($nbr_r0 > 0)
    {
     $ok = 0 ;
     $requete_insertion_modalite = "INSERT INTO types_modalites (code,libelle_long,libelle_court) VALUES " ;
     For ($i = 0 ; $i < $nbr_r0 ; $i++)
      {
       $l0 = SQL_tableau_associatif ($r0, "") ;
       // Existe ?
       $requete = "SELECT id_type_modalite FROM types_modalites WHERE code='".$l0 ["MODALITE_ELECTION"]."' LIMIT 1" ;
       $r1 = SQL_commande ($requete, $id_sql) ;
       If (SQL_nbr_lignes ($r1) == 1)
        {
	 // MAJ seulement
	 $l1 = SQL_ligne_suivante ($r1) ;
	 $requete  = "UPDATE types_modalites SET libelle_long='".$l0 ["LIBELLE_LONG"]."',libelle_court='".$l0 ["LIBELLE_COURT"]."' WHERE id_type_modalite='".$l1 [0]."' LIMIT 1" ;
	 $r2 = SQL_commande ($requete, $id_sql) ;
	}
       Else
        {
         If ($ok != 0) { $requete_insertion_modalite .= "," ; }
         $requete_insertion_modalite .= "('".$l0 ["MODALITE_ELECTION"]."','".$l0 ["LIBELLE_LONG"]."','".$l0 ["LIBELLE_COURT"]."')" ;
	 $ok = 1 ;
	}
      }
     If ($ok == 1)
      {
       $r2 = SQL_commande ($requete_insertion_modalite, $id_sql) ;
       $etat++ ;
      }
    }
   
   // Remplissage de la table modalites
   $ok = 0 ;
   $r0 = SQL_commande ("SELECT * FROM ".$sql_sconet."_".$entete."_PROGRAMMES", $id_sql) ;
   $nbr_r0 = SQL_nbr_lignes ($r0) ;
   If ($nbr_r0 > 0)
    {
     $ok = 0 ;
     $requete_insertion_modalite = "INSERT INTO modalites (code_mef,code_matiere,code_gestion,libelle_long,libelle_court,libelle_edition,modalite,horaire) VALUES " ;
     For ($i = 0 ; $i < $nbr_r0 ; $i++)
      {
       $l0 = SQL_tableau_associatif ($r0, "") ;
       // Recherche libelle
       $requete = "SELECT * FROM ".$sql_sconet."_".$entete."_MATIERES WHERE CODE_MATIERE='".$l0 ["CODE_MATIERE"]."' LIMIT 1" ;
       $r1 = SQL_commande ($requete, $id_sql) ;
       If (SQL_nbr_lignes ($r1) == 1) { $l1 = SQL_tableau_associatif ($r1, "") ; } Else { UnSet ($l1) ; }
       // Existe ?
       $requete = "SELECT id_modalite FROM modalites WHERE code_mef='".$l0 ["CODE_MEF"]."' AND code_matiere='".$l0 ["CODE_MATIERE"]."' AND modalite='".$l0 ["MODALITE_ELECTION"]."' LIMIT 1" ;
       $r2 = SQL_commande ($requete, $id_sql) ;
       If (SQL_nbr_lignes ($r2) == 1)
        {
	 // MAJ seulement
	 $l2 = SQL_ligne_suivante ($r2) ;
	 $requete  = "UPDATE modalites SET horaire='".$l0 ["HORAIRE"]."'" ;
	 If (IsSet ($l1)) { $requete .= ",code_gestion='".$l1 ["CODE_GESTION"]."',libelle_long='".Str_Replace ("'","\'",$l1 ["LIBELLE_LONG"])."',libelle_court='".Str_Replace ("'","\'",$l1 ["LIBELLE_COURT"])."',libelle_edition='".Str_Replace ("'","\'",$l1 ["LIBELLE_EDITION"])."'" ; }
	 $requete .= " WHERE id_modalite='".$l2 [0]."' LIMIT 1" ;
	 $r3 = SQL_commande ($requete, $id_sql) ;
	}
       Else
        {
         If ($ok != 0) { $requete_insertion_modalite .= "," ; }
         $requete_insertion_modalite .= "('".$l0 ["CODE_MEF"]."','".$l0 ["CODE_MATIERE"]."','".$l1 ["CODE_GESTION"]."','".Str_Replace ("'","\'",$l1 ["LIBELLE_LONG"])."'," ;
	 $requete_insertion_modalite .= "'".Str_Replace ("'","\'",$l1 ["LIBELLE_COURT"])."','".Str_Replace ("'","\'",$l1 ["LIBELLE_EDITION"])."','".$l0 ["MODALITE_ELECTION"]."','".$l0 ["HORAIRE"]."')" ;
	 $ok = 1 ;
	}
      }
     If ($ok == 1)
      {
       $r2 = SQL_commande ($requete_insertion_modalite, $id_sql) ;
       $etat++ ;
      }
    }
   Return $etat ;
  }
 
 /**
 * Insertion/Mise a jour des MEFs eleves
 * @param string $entete Nom d'entete pour tables d'importation
 * @return mixed Etat de l'insertion/mise a jour 0=Mise a jour OK, >0=Nombre d'eleves non traitable
 */
 Function ins_maj_mefs_eleves ($entete)
  {
   Global $id_sql, $sql_sconet ;
   $etat = 0 ;
   $r0 = SQL_commande ("SELECT ELEVE_ID,ELENOET,ID_NATIONAL,CODE_MEF FROM ".$sql_sconet."_".$entete."_ELEVES", $id_sql) ;
   $nbr_r0 = SQL_nbr_lignes ($r0) ;
   If ($nbr_r0 > 0)
    {
     For ($i = 0 ; $i < $nbr_r0 ; $i++)
      {
       $l0 = SQL_tableau_associatif ($r0, "") ;
       // Existe ?
       $requete = "SELECT id_eleve FROM eleves WHERE repere1='".$l0 ["ELENOET"]."' AND repere2='".$l0 ["ID_NATIONAL"]."' AND repere3='".$l0 ["ELEVE_ID"]."' LIMIT 1" ;
       $r1 = SQL_commande ($requete, $id_sql) ;
       If (SQL_nbr_lignes ($r1) == 1)
        {
	 // MAJ
	 $l1 = SQL_ligne_suivante ($r1) ;
	 $requete  = "UPDATE eleves SET mef='".$l0 ["CODE_MEF"]."' WHERE id_eleve='".$l1 [0]."' LIMIT 1" ;
	 $r2 = SQL_commande ($requete, $id_sql) ;
	}
       Else { $etat++ ; }
      }
    }
   Return $etat ;
  }
?>